2013年11月13日 星期三

[UVA] 119 - Greedy Gift Givers


#include<stdio.h>
#include<vector>
#include<iostream>
#include<map>
using namespace std;
vector<string> vec;
map<string,int> re;
map<string,int> giv;
char s[25],r[25];
int main(){
    int n,m,i,j,x,flag=0;
    while(scanf("%d",&n)!=EOF){
        if(flag) puts("");
        vec.clear();
        re.clear();
        giv.clear();
        for(i=0;i<n;i++){
            scanf("%s",s);
            vec.push_back(string(s));
        }
        for(i=0;i<n;i++){
            scanf("%s%d%d",s,&x,&m);
            if(!m) continue;
            x/=m;
            giv[string(s)]+=x*m;
            for(j=0;j<m;j++){
                scanf("%s",r);
                re[string(r)]+=x;
            }
        }
        for(i=0;i<n;i++){
            printf("%s %d\n",vec[i].c_str(),re[vec[i]]-giv[vec[i]]);
        }
        flag=1;
    }
}

沒有留言:

張貼留言