USACO1.1 Greedy Gift Givers(gift1)

        將np我的名保存到string a[10]中,對應s[10]是他們的收錢和送錢差。對於從np+2到最後每一組輸入,先找到此人的位置k,而後計算他送出錢的總數,取相反數保存進s[k],而後分別將找到他送錢的人的位置k,在s[k]中加上送給他的錢數。spa

/*
	ID: jzzlee1
	PROG: gift1
	LANG: C++
*/
#include <fstream>
using namespace std;
ifstream fin("gift1.in");
ofstream fout("gift1.out");
int s[10];
int main()
{
	
	int np,i,j,k,money,ng;
	string a[10],str1,str2;
	fin>>np;
	for (i=0;i<np;i++)
		fin>>a[i];
	for (i=0;i<np;i++)
	{
		fin>>str1>>money>>ng;
		for (k=0;str1!=a[k];k++);
		if(ng)
			s[k]-=money-money%ng;
		for (j=0;j<ng;j++)
		{
			fin>>str2;
			for (k=0;str2!=a[k];k++);
			s[k]+=money/ng;
		}
	}
	for (i=0;i<np;i++)
		fout<<a[i]<<' '<<s[i]<<endl;
	return 0;
}
相關文章
相關標籤/搜索