제출 #1315191

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