Submission #1322936

#TimeUsernameProblemLanguageResultExecution timeMemory
1322936bahaktlBodyguards (CEOI10_bodyguards)C++20
40 / 100
69 ms824 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...