Submission #702900

#TimeUsernameProblemLanguageResultExecution timeMemory
702900siewjhXylophone (JOI18_xylophone)C++17
100 / 100
103 ms436 KiB
#include "xylophone.h"
#include <bits/stdc++.h>
using namespace std;
static int A[5000];

void solve(int N) {
    vector<int> a2(N), a3(N);
    for (int i = 1; i <= N - 1; i++) a2[i] = query(i, i + 1);
    for (int i = 1; i <= N - 2; i++) a3[i] = query(i, i + 2);
    vector<int> ans(N + 1);
    ans[1] = 1; ans[2] = ans[1] + a2[1];
    int minv = N + 1, minind, maxv = 0, maxind;
    for (int i = 3; i <= N; i++){
        if (ans[i - 2] > ans[i - 1]){
            if (a2[i - 2] + a2[i - 1] == a3[i - 2]) ans[i] = ans[i - 1] - a2[i - 1];
            else ans[i] = ans[i - 1] + a2[i - 1];
        }
        else {
            if (a2[i - 2] + a2[i - 1] == a3[i - 2]) ans[i] = ans[i - 1] + a2[i - 1];
            else ans[i] = ans[i - 1] - a2[i - 1];
        }
    }
    for (int i = 1; i <= N; i++) {
        if (ans[i] < minv){
            minv = ans[i];
            minind = i;
        }
        if (ans[i] > maxv){
            maxv = ans[i];
            maxind = i;
        }
    }
    for (int i = 1; i <= N; i++) ans[i] -= (minv - 1);
    if (minind > maxind){
        for (int i = 1; i <= N; i++) ans[i] = N + 1 - ans[i];
    }
    for (int i = 1; i <= N; i++) {
        answer(i, ans[i]);
    }
}

Compilation message (stderr)

xylophone.cpp:4:12: warning: 'A' defined but not used [-Wunused-variable]
    4 | static int A[5000];
      |            ^
xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:34:5: warning: 'maxind' may be used uninitialized in this function [-Wmaybe-uninitialized]
   34 |     if (minind > maxind){
      |     ^~
xylophone.cpp:34:5: warning: 'minind' may be used uninitialized in this function [-Wmaybe-uninitialized]
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...