#include <bits/stdc++.h>
using namespace std;
#define int long long
#define boost ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
const int inf=1e18;
const int N=2e5+100;
const int mod=1e9+7;
struct edge{
int a,b;
};
vector<edge>r;
vector<edge>c;
int a[10005][10005];
int r1[10005];
int c1[10005];
signed main(){
boost;
int n,m;
cin>>n;
int cnt=0;
int l=1;
for(int i=1;i<=n;i++){
int a,b;
cin>>a>>b;
r.push_back({a,b});
for(int j=l;j<=l+b-1;j++){
r1[j]=a;
}
l+=b;
cnt+=b;
}
cin>>m;
int cnt1=0;
l=1;
priority_queue<pair<int,int> >q;
for(int i=1;i<=m;i++){
int a,b;
cin>>a>>b;
c.push_back({a,b});
cnt1+=b;
for(int j=l;j<=l+b-1;j++){
c1[j]=a;
q.push({a,j});
}
l+=b;
}
vector<pair<int,int> >v;
int ok=1;
for(int i=1;i<=cnt;i++){
while(r1[i]>0){
r1[i]--;
pair<int,int>p=q.top();
a[i][p.second]=1;
p.first--;
if(p.first<0){
ok=0;
break;
}
q.pop();
v.push_back(p);
}
if(ok==0){
break;
}
for(int j=0;j<v.size();j++){
q.push(v[j]);
}
v.clear();
}
cout<<ok;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |