USACO第一题Greedy Gift Givers
今天做了usaco的第一题,本来是个基础题,花了不少时间。几乎没有什么算法,过了sample很简单,但是测试数据怎么也过不了。看来usaco上的题测试数据都比较变态。
/* ID: like_091 PROG: gift1 LANG: C++ */ #include<iostream> #include<fstream> #include<string> using namespace std; int main() { ifstream cin("gift1.in"); ofstream cout("gift1.out"); int tot, get[12], money[12], n; string str, s[12], goal; cin>>tot; for (int i = 0; i < tot; i++) { cin>>s[i]; get[i] = 0;//初始化为0 } for (int t = 0; t < tot; t++) { int k, l; string goal; cin>>str; for (k = 0; k < tot; k++) if (s[k] == str) break; //初始化的钱及份数 cin>>money[k]>>n; for (int i = 0; i < n; i++) { cin>>goal; for (l = 0; l < tot; l++) if (s[l] == goal) break; //按名字查找收礼者 get[l] += money[k] / n; } //如果n为0就不用处理 if (n)money[k] = money[k] % n - money[k]; } for (int i = 0; i < tot; i++) cout<<s[i]<<" "<<(get[i] + money[i])<<endl; exit(0); }