Submission #505146

#TimeUsernameProblemLanguageResultExecution timeMemory
505146tengiz05Xylophone (JOI18_xylophone)C++17
0 / 100
0 ms200 KiB
#include "xylophone.h"
#include <bits/stdc++.h>

static int a[5005];

void solve(int n) {
    a[2] = query(1, 2);
    for (int i = 3; i <= n; i++) {
        int x = query(i - 1, i);
        int y = query(i - 2, i);
        
        if (x + abs(a[i - 2] - a[i - 1]) == y) {
            if (a[i - 2] > a[i - 1]) {
                a[i] = a[i - 1] - x;
            } else {
                a[i] = a[i - 1] + x;
            }
        } else {
            if (a[i - 2] > a[i - 1]) {
                a[i] = a[i - 1] + x;
            } else {
                a[i] = a[i - 1] - x;
            }
        }
    }
    
    if (std::min_element(a + 1, a + n + 1) > std::max_element(a + 1, a + n + 1)) {
        for (int i = 1; i <= n; i++) {
            a[i] = -a[i];
        }
    }
    
    int x = *std::min_element(a + 1, a + n + 1);
    for (int i = 1; i <= n; i++) {
        a[i] = a[i] - x + 1;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...