Submission #1000601

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
10006012024-06-17 23:28:55biximoBuilding 4 (JOI20_building4)C++17
0 / 100
1 ms6748 KiB
#include <bits/stdc++.h>
#define N 1000005
using namespace std;
int A[N], B[N], LIS[N], n, minv[N], maxv[N], bt[N];
string ans;
void reconstruct(int st) {
priority_queue<array<int,3>> pq;
for(auto&i: ans) i = 'B';
int c = st, cv = n/2, prev;
while(c) {
ans[c-1] = 'A';
if(minv[c-1] <= cv - 1 && cv - 1 <= maxv[c-1]) {
prev = c;
c --;
cv --;
continue;
}
// cout << c << " " << cv << "\n";
if(c == st || LIS[prev-1] != LIS[c-1]) {
for(int i = c-2; i >= 0 && LIS[i+1] == LIS[c-1]; i --) {
if(A[i] <= B[i+1]) pq.push({maxv[i],minv[i],i});
}
// cout << "Woah.?\n";
}
while(pq.top()[2] >= c) pq.pop();
while(pq.top()[1] > cv-1) pq.pop();
assert(pq.size());
cv --;
prev = c;
c = pq.top()[2];
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

building4.cpp: In function 'int main()':
building4.cpp:75:38: warning: suggest parentheses around comparison in operand of '==' [-Wparentheses]
   75 |      if(okb && minv[i] <= n/2 && n/2 <= maxv[i] == n/2 && (i == n || A[i] <= B[i+1])) {
      |                                  ~~~~^~~~~~~~~~
building4.cpp: In function 'void reconstruct(int)':
building4.cpp:19:25: warning: 'prev' may be used uninitialized in this function [-Wmaybe-uninitialized]
   19 |   if(c == st || LIS[prev-1] != LIS[c-1]) {
      |                     ~~~~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...