USACO第二题gift1,礼物

来源:互联网 发布:组织域名后缀含义 编辑:程序博客网 时间:2024/05/17 02:47

这道题也十分简单,暴力枚举即可。

代码很容易理解,看一下就会了。

但是这道题可以使用stcut这样的结构体,可以便于理解。

#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>struct node{char s[100];int n,m,j,k,i,sum,ans;};struct node a[100];char f[100],p[100];int n;int find(char *w){for(int i=1;i<=n;i++)if(strcmp(w,a[i].s)==0)return i;return -1;}int main(){freopen("gift1.in","r",stdin);freopen("gift1.out","w",stdout);int m,j,k,i;scanf("%d",&n);getchar();for(i=1;i<=n;i++){scanf("%s",&a[i].s);getchar();}for(i=1;i<=n;i++){scanf("%s",&f);j=find(f);scanf("%d%d",&a[j].sum,&a[j].m);getchar();if(a[j].m==0)continue;a[j].k=a[j].sum/a[j].m;a[j].ans+=a[j].sum%a[j].m;for(k=1;k<=a[j].m;k++){scanf("%s",&p);a[find(p)].ans+=a[j].k;}}for(i=1;i<=n;i++){printf("%s",a[i].s);printf(" %d\n",a[i].ans-a[i].sum);}return 0;}

注意!需要使用文件输入输出!
 

2 0