0100 : Sale Result
解説
売上が100万を超えている社員の番号を答える。
入力された順に番号を出力する必要があるので、売上を記憶する配列とは別に番号を記録する配列を用意しておく。
また、売上額がかなり大きくなる可能性があるので、int型ではなくlong long型を使う必要がある。
あと、重要なのが「番号が重複した場合は、高いほうの売上額に更新する(または加算する)」必要があること。これは問題のどこにも書かれていないので注意。
というか、そもそも問題に「社員番号は重複しないものとします」と書いてあるのに、重複した場合の処理を書く必要があるってどういうことなんですかね?
プログラム
C
C++
|
+
|
... |
#include <iostream>
using namespace std;
int main() {
int n;
while (cin >> n, n) {
long long s[4001] = {0};
int id[4000+1], p, a;
for (int i = 0; i < n; i++) {
cin >> id[i] >> p >> a;
long long result = (long long)p * a;
s[id[i]] += result;
}
bool flag = false;
for (int i = 0; i < n; i++) {
if (s[id[i]] >= 1000000) {
cout << id[i] << endl;
s[id[i]] = 0;
flag = true;
}
}
if (!flag) cout << "NA" << endl;
}
return 0;
}
|
Java
最終更新:2012年12月12日 16:14