| 比赛 |
2026.5.30 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
| 题目名称 |
雨和卡布奇诺 |
最终得分 |
100 |
| 用户昵称 |
VTXE |
运行时间 |
1.632 s |
| 代码语言 |
C++ |
内存使用 |
26.23 MiB |
| 提交时间 |
2026-05-30 09:32:03 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
#define ll long long
struct node{
ll id,val;
};
vector <node> e[410000];
ll n;
ll t[210000],u[210000];
ll m;
map <ll,ll> nm;
ll l[210000],k[210000],num[210000];
vector<ll> c[210000],d[210000],anss;
ll ans;
ll cc[210000];
bool cmp(node aa,node bb){
return aa.val<bb.val;
}
int main(){
freopen("Cappuccino.in","r",stdin);
freopen("Cappuccino.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n;
for (int i=1;i<=n;i++){
cin>>t[i]>>u[i];
nm[t[i]]=i;
}
cin>>m;
for (int i=1;i<=m;i++){
cin>>l[i];
for (int j=1;j<=l[i];j++){
ll a,b;
cin>>a>>b;
if (nm[a]==0) nm[a]=++n;
if (u[nm[a]]>=b) num[i]++;
else e[nm[a]].push_back({i,b});
}
if (num[i]==l[i]){
anss.push_back(i);
}
cin>>k[i];
for (int j=1;j<=k[i];j++){
ll x,y;
cin>>x>>y;
if (nm[x]==0) nm[x]=++n;
c[i].push_back(x);
d[i].push_back(y);
}
}
for (int i=1;i<=n;i++){
sort(e[i].begin(),e[i].end(),cmp);
}
for (int bbb=0;bbb<anss.size();bbb++){
ans++;
ll o=anss[bbb];
for (int i=0;i<k[o];i++){
ll bj=nm[c[o][i]];
u[bj]+=d[o][i];
while (cc[bj]<e[bj].size()){
if (u[bj]>=e[bj][cc[bj]].val){
num[e[bj][cc[bj]].id]++;
if (num[e[bj][cc[bj]].id]==l[e[bj][cc[bj]].id]){
anss.push_back(e[bj][cc[bj]].id);
}
cc[bj]++;
}else break;
}
}
}
cout<<ans;
return 0;
}