比赛 2024暑期C班集训1 评测结果 TATTTTTTTTTTTTEEAEEE
题目名称 雨和卡布奇诺 最终得分 10
用户昵称 123 运行时间 14.474 s
代码语言 C++ 内存使用 369.65 MiB
提交时间 2024-07-01 11:59:56
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=5010;
map <int,int> 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;
            for (int j=1;j<=cnt[i];j++)
            {
                if (flag[i] || mp[c[i][j]]<d[i][j])
                {
                    now=0;
                    break;
                }
            }
            if (now)
            {
                res++;
                flag1=1;
                flag[i]=1;
                for (int q=1;q<=ret[i];q++)
                {
                    mp[e[i][q]]+=f[i][q];
                }
            }
        }
    }
    cout<<res;
}