제출 #1318139

#제출 시각아이디문제언어결과실행 시간메모리
1318139ninstroyerHandcrafted Gift (IOI20_gift)C++20
25 / 100
82 ms19448 KiB
#include "gift.h"
#include<bits/stdc++.h>
using namespace std;

const int nx = 5e5+5;

int add[nx], sub[nx], last[nx]; // R, B
vector<pair<int,int>> t2;

int construct(int n, int r, std::vector<int> a, std::vector<int> b, std::vector<int> x) 
{
    string res = "";
    for(int i = 0; i < r; i++)
    {
        if(x[i] == 1)
        {
            add[a[i]]++;
            sub[b[i]]++;
        }
        else t2.push_back({a[i],b[i]});
    }
    string cur = "R";
    int sum = 0;
    for(int i = 0; i < n; i++)
    {
        sum += add[i];
        res += cur;
        if(sum > 0) cur = cur;
        else if(cur == "R") cur = "B";
        else cur = "R";
        sum -= sub[i];
    }
    for(int i = 1; i < n; i++)
    {
        last[i] = last[i-1];
        if(res[i]!=res[i-1]) last[i] = i-1;
    }
    for(auto [l,r] : t2)
    {
        if(last[r] >= l) continue;
        else return 0;
    }
    craft(res);
    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...