Submission #1322806

#TimeUsernameProblemLanguageResultExecution timeMemory
1322806the_ZHERBodyguards (CEOI10_bodyguards)C++20
40 / 100
80 ms32188 KiB
#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[2005][2005];
int r1[2005];
int c1[2005];
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 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...