Submission #1314810

#TimeUsernameProblemLanguageResultExecution timeMemory
131481012345678Handcrafted Gift (IOI20_gift)C++20
100 / 100
84 ms16964 KiB
#include "gift.h"
#include <bits/stdc++.h>

using namespace std;

const int nx=5e5+5;

int qs[nx], lst, mx[nx];
string s;
vector<int> t[nx];

int construct(int n, int r, std::vector<int> a, std::vector<int> b, std::vector<int> x) {
    for (int i=0; i<r; i++) if (x[i]==1) qs[a[i]]++, qs[b[i]]--;
    char cur='R';
    for (int i=0; i<n; i++)
    {
        qs[i+1]+=qs[i];
        mx[i]=-1;
        s+=cur;
        if (!qs[i]) cur=(cur=='R')?'B':'R';
    }
    for (int i=0; i<r; i++) if (x[i]==2) mx[b[i]]=max(mx[b[i]], a[i]);
    lst=-1;
    for (int i=0; i<n; i++)
    {
        if (i>0&&s[i]!=s[i-1]) lst=i-1;
        if (lst<mx[i]) return 0;
    }
    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...