记录编号 |
588880 |
评测结果 |
AAAAAAAAAAAAAAEEAEEE |
题目名称 |
雨和卡布奇诺 |
最终得分 |
75 |
用户昵称 |
123 |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
1.739 s |
提交时间 |
2024-07-01 19:31:27 |
内存使用 |
194.81 MiB |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=5010;
map <int,long long> mp,flag;
int c[N][N],d[N][N],cnt[N],ret[N],e[N][N],f[N][N];
int n,m,mi=0,flag1=1,res=0;
int main() {
freopen("Cappuccino.in","r",stdin);
freopen("Cappuccino.out","w",stdout);
cin>>n;
while (n--)
{
int a,b;
scanf("%d%d",&a,&b);
mp[a]+=b;
}
cin>>m;
for (int j=1;j<=m;j++)
{
scanf("%d",&cnt[j]);
for (int i=1;i<=cnt[j];i++)
{
scanf("%d%d",&c[j][i],&d[j][i]);
}
scanf("%d",&ret[j]);
for (int i=1;i<=ret[j];i++)
{
scanf("%d%d",&e[j][i],&f[j][i]);
}
}
while (flag1)
{
flag1=0;
for (int i=1;i<=m;i++)
{
int now=1;
if (flag[i])
{
now=0;
}
for (int j=1;j<=cnt[i];j++)
{
if (mp[c[i][j]]<d[i][j])
{
now=0;
break;
}
}
if (now)
{
//cout<<"i="<<i<<endl;
res++;
flag1=1;
flag[i]=1;
for (int q=1;q<=ret[i];q++)
{
mp[e[i][q]]+=f[i][q];
}
}
}
}
cout<<res;
}