1. 程式人生 > >360校招筆試題(C++小明買菜)

360校招筆試題(C++小明買菜)

大致題意:
小明拿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; }