【C++】【USACO1.1.2】贪婪的送礼者

    xiaoxiao2021-03-26  51

    自己写的比较麻烦 将就看一下

    #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<cmath> using namespace std; int n,y,z; char x[25],p[25]; struct data { char name[25]; int qian,num,_num; }; data a[15]; bool cmp(data a,data b) { return a._num<b._num; } int check(char *x) { for(int i=1;i<=n;i++) if(strcmp(a[i].name,x)==0) return a[i].num; } int main() { //freopen("in.txt","r",stdin); scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%s",a[i].name); a[i].num=i;a[i].qian=0; } for(int i=1;i<=n;i++) { scanf("%s%d%d",x,&y,&z); a[i]._num=i; int qq=check(x); int r=1; if(z!=0) r=y-y/z*z; else r=0; a[qq].qian=a[qq].qian-y+r; for(int j=1;j<=z;j++) { scanf("%s",p); int qq=check(p); if(z!=0) a[qq].qian+=y/z; else a[qq].qian+=0; } } sort(a+1,a+n+1,cmp); for(int i=1;i<=n;i++) { printf("%s %d\n",a[i].name,a[i].qian); } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-660181.html

    最新回复(0)