Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Calorie Counting"
https://onlinejudge.u-aizu.ac.jp/problems/0239
食べ物には3大栄養素と呼ばれる「たんぱく質」「脂質」「炭水化物」の3つの栄養素が含まれています。
分類の対象となるお菓子の個数 n と各お菓子の情報、制限の情報を入力とし、そのお菓子一つだけなら制限を超えることがない(食べてもよい)お菓子の一覧を出力するプログラムを作成してください。
食べてもよいお菓子の一覧は、食べてもよいお菓子の番号を入力順に出力してください。
なお、食べてもよいお菓子がなければ”NA”と出力してください。
僕が作成、提出したコードは、以下のとおりです。
Aizu Online Judge in C++ #Volume2 - 0239 : Calorie Counting
/* Aizu Online Judge in C++ #Volume2 - 0239 : Calorie Counting https://onlinejudge.u-aizu.ac.jp/problems/0239 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ while(1){ int n; cin>>n; if(n==0){ return 0; }else{ int s[n],p[n],q[n],r[n],c[n]; for(int i=0;i<n;i++){ cin>>s[i]>>p[i]>>q[i]>>r[i]; c[i]=p[i]*4+q[i]*9+r[i]*4; } int P,Q,R,C; cin>>P>>Q>>R>>C; vector<int> v; for(int i=0;i<n;i++){ if(p[i]<=P && q[i]<=Q && r[i]<=R && c[i]<=C){ v.push_back(s[i]); } } if(v.size()-0==0){ cout<<"NA"<<endl; }else{ for(int i=0;i<v.size();i++){ cout<<v[i]<<endl; } } } } }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/