点击此处查看题目
完整代码:
#include <iostream> #include <cstdio> #include <map> using namespace std; int n,m,k,flag=1; map <string,int> ma; typedef struct food { char name[25]; int num; }f; int main() { f a[1010]; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) { scanf("%s %d",a[i].name,&a[i].num); ma[a[i].name]=i; } while(m--) { scanf("%d",&k); for(int i=0;i<k;i++) { char s[25]; int rn; scanf("%s%d",s,&rn); a[ma[s]].num-=rn; if(a[ma[s]].num<0) { flag=0; } } } if(flag) { printf("YES\n"); for(int i=0;i<n;i++) { if(a[i].num>0) { printf("%s %d\n",a[i].name,a[i].num); } } } else{ printf("NO\n"); } return 0; }