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;
}
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。