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);
}
浙公网安备 33010602011771号