Submission #1315158

#TimeUsernameProblemLanguageResultExecution timeMemory
1315158norrawichzzzHandcrafted Gift (IOI20_gift)C++20
55 / 100
79 ms16960 KiB
#include "gift.h"
#include <bits/stdc++.h>
using namespace std;

int construct(int n, int R, vector<int> a, vector<int> b, vector<int> x) {
    string s="";
    vector<int> sl(n+1, 0);

    for (int i=0; i<R; i++) {
        int l=a[i], r=b[i];
        if (x[i] == 1) {
            sl[l]++;
            sl[r+1]--;
        }
    }
    
    for (int i=1; i<=n; i++) sl[i] += sl[i-1];

    for (int i=0; i<=n; i++) if (sl[i] > 1) sl[i] = 1;

    vector<int> prf(n, 0);
    prf[0] = sl[0];
    for (int i=1; i<n; i++) prf[i] = prf[i-1] + sl[i];

    for (int i=0; i<R; i++) {
        int l=a[i], r=b[i];
        if (x[i] == 2) {
            if (prf[r] - (l-1 >=0 ? prf[l-1] : 0) >= r-l+1) return 0;
        }
    }

    char cur='R';
    for (int i=0; i<n; i++) {
        if (sl[i] == 0 || sl[i] != sl[i-1]) {
            if (cur == 'R') cur = 'B';
            else cur = 'R';
        }
        s+=cur;
    }
    craft(s);
    return 1;
}
#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...