AOJ 0100 - Sale Result
なぜ今まで解けなかったかというと、
(1)順番どおりに出力する方法が浮かばなかった
(2)入力値がintで想定されている(本当にもっと大きいらしいです)
#include <iostream> #include <vector> #include <map> int main(){ int n; std::map<int,long long> m; std::vector<int> v; //m数値保存v順序保存 long long a,b,c; //a番号b単価c数量 bool f; while(std::cin>>n && n){ m.clear(); v.clear(); f=true; for(;n;n--){ std::cin>>a>>b>>c; if(!m[a])v.push_back(a); m[a] += b*c; } for(int i=0;i<v.size();i++){ if(m[v[i]]>=1000000){ f=false; std::cout<<v[i]<<std::endl;} } if(f)std::cout<<"NA"<<std::endl; } return 0; }
コメントをつけて多少見やすく。
変数が適当な1文字なのは頭文字をつけるのが面倒だからです。