#include<bits/stdc++.h> using namespace std; int c[1010],w[1010][8]; int main(){ int n,e; while(~scanf("%d%d",&n,&e)){ memset(w,0,sizeof(w)); int flag=0; for(int i=0;i<n;i++){ int m; scanf("%d%d",&c[i],&m); flag+=c[i]; while(m--){ int a; scanf("%d",&a); w[i][a]=1; } } int cnt=0,d=1; while(flag){ int num=0,i=0; while(num<e){ if(w[i][d]&&c[i]){ c[i]--; num++; flag--; } i++; if(i==n) i=0; } d++; if(d==8) d=1; cnt++; } printf("%d\n",cnt); } return 0; }
双while肯定超,我就是想模拟一下过程。
然后,写完之后,反而被思路禁锢了,然后不知道从哪下手减少时间。。。。。。
全部评论
(1) 回帖