360校招筆試題(C++小明買菜)
阿新 • • 發佈:2019-01-01
大致題意:
小明拿n元錢去買菜,一共買x種菜,但是必須要在y種菜裡買一樣最貴的,問小明拿的錢夠不夠買菜。首先輸入n,然後輸入x,y(x<=y)。最後輸入y種菜每種菜的單價。
例:
輸入:
8
3 4
2 1 4 3
輸出:
Yes
大致思路:
首先對輸入的y種菜的單價進行從小到大排序,用n減去最大的數和前x-1的小數,若n>=0,則輸出Yes,否則輸出No。
程式碼:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std ;
int main()
{
int n;
int x, y;
int tmp;
vector<int> v;
cin >> n >> x >> y;
for (int i = 0; i < y; i++)
{
cin >> tmp;
v.push_back(tmp);
}
sort(v.begin(), v.end());
n -= v[y - 1];
for (int i = 0; i < x-1; i++)
{
n -= v[i];
}
if (n >= 0)
{
cout << "Yes" << endl;
}
else
{
cout << "No" << endl;
}
system("pause");
return 0;
}