제출 #1315175

#제출 시각아이디문제언어결과실행 시간메모리
1315175mantaggezHandcrafted Gift (IOI20_gift)C++20
10 / 100
81 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);
    for(int i=0;i<r;i++)
    {
    	int u = a[i];
    	int v = b[i];
    	if(x[i] == 1)
		{
			sl[u]++;
			sl[v]--;
		}
	}
	
	for(int i=1;i<n;i++) sl[i] += sl[i - 1];
	for(int i=0;i<n;i++) if(sl[i] > 0) sl[i] = 1;
	// for(int i=0;i<n;i++) cout << sl[i] << ' ';
	
	vector<int> qs(n, 0);
	qs[0] = sl[0];
	for(int i=1;i<n;i++) qs[i] = qs[i - 1] + sl[i];
	
	char cur = 'R';
	for(int i=0;i<n;i++)
	{
		s += cur;
		if(sl[i] == 0)
		{
			if(cur == 'R') cur = 'B';
			else cur = 'R';	
		}
	}
	// cout << '\n' << s << '\n';
    
    for(int i=0;i<r;i++)
    {
    	if(x[i] == 2)
    	{
    		int u = a[i];
    		int v = b[i];
    		if(qs[v] - qs[u] != 0) 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...