| 比赛 |
2026.5.30 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
| 题目名称 |
雨和卡布奇诺 |
最终得分 |
100 |
| 用户昵称 |
郑霁桓 |
运行时间 |
1.134 s |
| 代码语言 |
C++ |
内存使用 |
17.37 MiB |
| 提交时间 |
2026-05-30 09:32:38 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,m,l,k,aa,bb,tt,tp,u[300005],in[300005],as;
queue<int>qq;
unordered_map<int,int> mp;
vector<pair<int,long long> >v[100005];
priority_queue<pair<long long,int> >q[300005];
int main(){
freopen("Cappuccino.in","r",stdin);
freopen("Cappuccino.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
cin>>tp>>aa;
if(!mp[tp]) mp[tp]=++tt;
tp=mp[tp];
u[tp]=aa;
}
cin>>m;
for(int i=1;i<=m;i++){
cin>>l;
for(int j=1;j<=l;j++){
cin>>aa>>bb;
if(!mp[aa]) mp[aa]=++tt;
aa=mp[aa];
if(u[aa]<bb){
q[aa].push({-bb,i});
in[i]++;
}
}
if(!in[i]) qq.push(i);
cin>>k;
for(int j=1;j<=k;j++){
cin>>aa>>bb;
if(!mp[aa]) mp[aa]=++tt;
aa=mp[aa];
v[i].push_back({aa,bb});
}
}
while(!qq.empty()){
int p=qq.front();
qq.pop();
as++;
for(int i=0;i<v[p].size();i++){
int f1=v[p][i].first,f2=v[p][i].second;
u[f1]+=f2;
while(!q[f1].empty()&&-q[f1].top().first<=u[f1]){
if(!--in[q[f1].top().second]) qq.push(q[f1].top().second);
q[f1].pop();
}
}
}
cout<<as;
return 0;
}