1. 程式人生 > 其它 >USACO Greedy Gift Givers

USACO Greedy Gift Givers

給別人的錢是要均分的,沒有小數點,分不盡就給自己,注意的是,拿出去分的是自己的錢,所以 分的人的錢=分的人原本的錢-拿出來分的錢+分不盡的錢

/*
ID: kdk5501
TASK : gift1 
LANG : C++
*/

#include <iostream>
#include <fstream>
#include <string>

using namespace std;
struct people
{
    string name;
    int money;
}person[110];


int main() {
    
    

    freopen(
"gift1.in","r",stdin); freopen("gift1.out","w",stdout); int n; cin>>n; for(int i=1;i<=n;i++) { cin>>person[i].name; person[i].money=0; } int m=n; for(int i=1;i<=n;i++) { string op; cin>>op; int sum,t,temp,add=0
; cin>>sum>>t; if(t==0) { for(int i=1;i<=n;i++) { if(person[i].name==op) { person[i].money+=sum; break; } } continue; } temp
=sum/t; for(int i=1;i<=t;i++) { string na; cin>>na; for(int i=1;i<=n;i++) { if(person[i].name==na) { person[i].money+=temp; break; } } } for(int i=1;i<=n;i++) { if(person[i].name==op) { person[i].money-=sum; person[i].money+=(sum-temp*t); } } } for(int i=1;i<=n;i++) { cout<<person[i].name<<" "<<person[i].money<<endl; } return 0; }

本文來自部落格園,作者:magicat,轉載請註明原文連結:https://www.cnblogs.com/magicat/p/15630795.html