USACO1.1 Greedy Gift Givers(gift1)

        将np个人名保存到string a[10]中,对应s[10]是他们的收钱和送钱差。对于从np+2到最后每一组输入,先找到此人的位置k,然后计算他送出钱的总数,取相反数保存进s[k],然后分别将找到他送钱的人的位置k,在s[k]中加上送给他的钱数。

/*
	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;
}

转载于:https://my.oschina.net/u/347565/blog/60981

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值