Submission #346586

#TimeUsernameProblemLanguageResultExecution timeMemory
346586jamezzzXylophone (JOI18_xylophone)C++14
100 / 100
129 ms652 KiB
#include "xylophone.h"
#include <bits/stdc++.h>
using namespace std;

//static int A[5000];

void solve(int N) {
    int ans[N + 5], val[N + 5];
    val[1] = 0;
    val[2] = query(1, 2);
    for (int i = 3; i <= N; ++i){
        int tmp = query(i - 1, i);
        int pv = val[i - 1] - val[i - 2];
        if (query(i - 2, i) == abs(pv) + tmp){
            if (pv < 0) val[i] = val[i - 1] - tmp;
            else val[i] = val[i - 1] + tmp;
        }
        else{
            if (pv < 0) val[i] = val[i - 1] + tmp;
            else val[i] = val[i - 1] - tmp;
        }
    }
    int mn = N + 1, mx = - N - 1, mnid = 0, mxid = 0;
    for (int i = 1; i <= N; ++i){
        if (val[i] < mn){
            mn = val[i]; mnid = i;
        }
        if (val[i] > mx){
            mx = val[i]; mxid = i;
        }
    }
    if (mnid > mxid){
        for (int i = 1; i <= N; ++i){
            val[i] = -val[i];
        }
        mn = -mx;
    }
    for (int i = 1; i <= N; ++i){
        answer(i, val[i] - mn + 1);
    }
}

Compilation message (stderr)

xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:8:9: warning: unused variable 'ans' [-Wunused-variable]
    8 |     int ans[N + 5], val[N + 5];
      |         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...