BuringStraw

BuringStraw

USACO1.1.2 | 貪婪的送禮者

又開始做 USACO?
反正很水,但是很繞。注意送人剩下的錢不能算得到的。

#include<bits/stdc++.h>
using namespace std;

const int MAXN=15;

struct mem{
	string name;
	int money;
} a[MAXN];

int n;

int fnd(string nm){
	for(int i=1;i<=n;++i){
		if(a[i].name==nm){
			return i;
		}
	}
	return 0;
}

int main(){
	cin>>n;
	for(int i=1;i<=n;++i){
		cin>>a[i].name;
	}
	string name;//名字 
	for(int l=1;l<=n;++l){
		int yq,rs;//原有的錢、人數 
		cin>>name>>yq>>rs;
		int fd=fnd(name);
		if(rs==0){
			a[fd].money+=yq;
			continue;
		}
		a[fd].money-=(yq-yq%rs);
		yq/=rs;
		for(int i=1;i<=rs;++i){
			string sr;//送的人 
			cin>>sr;
			int fd2=fnd(sr);
			a[fd2].money+=yq;
		}
	}
	
	for(int i=1;i<=n;++i){
		cout<<a[i].name<<' '<<a[i].money<<'\n';
	}
	
	return 0;
}
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。