记录编号 588880 评测结果 AAAAAAAAAAAAAAEEAEEE
题目名称 雨和卡布奇诺 最终得分 75
用户昵称 Gravatar123 是否通过 未通过
代码语言 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;
    }