#include <bits/stdc++.h>
#define int long long
#define pb push_back
using namespace std;
const int N=3000;
const int inf=1e18;
const int mod=1e9+7;
pair<int,int> r[N],c[N];
int a[N];
int b[N];
//int cnt[38][38][38][38];
signed main() {
ios_base::sync_with_stdio(NULL);
cin.tie(NULL);
int T=1;
// cin>>T;
while(T--) {
int n;
cin>>n;
int rows=1,column=1;
for(int i=1;i<=n;i++) {
cin>>r[i].first>>r[i].second;
for(int j=rows;j<r[i].second+rows;j++) {
a[j]=r[i].first;
}
rows+=r[i].second;
}
int m;
cin>>m;
priority_queue<pair<int,int>>pq;
for(int i=1;i<=m;i++) {
cin>>c[i].first>>c[i].second;
for(int j=column;j<c[i].second+column;j++) {
pq.push({c[i].first,j});
}
column+=c[i].second;
}
bool ok=1;
for(int i=1;i<rows;i++) {
int cnt=a[i];
vector<pair<int,int>>v;
while(cnt) {
pair<int,int>p;
p=pq.top();
if(p.first) p.first--,cnt--;
else {ok=0;break;}
pq.pop();
v.pb(p);
}
for(auto p:v) {
pq.push(p);
}
if(!ok) break;
}
if(ok) cout<<"1\n";
else cout<<"0\n";
}
}
// 1 2 3 4 5 6 7
| # | 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... |