AGC027 A - Candy Distribution Again
問題はこちら atcoder.jp
方針
要求するお菓子が少ない子どもから順番に配っていけばいいですが, 番目まで配って 番目の子どもに配る際は注意が必要。要求するぴったりの数でないと喜んでくれないので,別で(残っているお菓子の数)( 番目の子どもが要求するお菓子の数)であるかを確認しています。
コード
#include <bits/stdc++.h> using namespace std; int main(){ int n,x; cin>>n>>x; vector<int> a(n); for(int i=0; i<n; i++){ cin>>a[i]; } sort(a.begin(),a.end()); int happy=0; while(x>=a[happy] && happy<n-1){ x-=a[happy]; happy++; } if(happy==n-1){ if(x==a[happy]){ happy++; } } cout<<happy<<endl; }