Submission #763682

#TimeUsernameProblemLanguageResultExecution timeMemory
763682vjudge1Xylophone (JOI18_xylophone)C++17
100 / 100
94 ms428 KiB
#include <bits/stdc++.h> #include "xylophone.h" const int maxn = 5e3 + 5; int arr[maxn]; void solve(int N){ arr[2] = query(1, 2); bool is_up = true; for(int i = 3; i <= N; i++){ int dou = query(i - 1, i); int tri = query(i - 2, i); int pre = abs(arr[i - 1] - arr[i - 2]); if(tri != dou + pre){ is_up ^= 1; } if(is_up){ arr[i] = arr[i - 1] + dou; }else{ arr[i] = arr[i - 1] - dou; } } int pos_min = std::min_element(arr + 1, arr + N + 1) - arr; int pos_max = std::max_element(arr + 1, arr + N + 1) - arr; // for(int i = 1; i <= N; i++){ // std::cout << arr[i]; // if(i != N) std::cout << " "; // else std::cout << std::endl; // } if(pos_min > pos_max){ int diff = *(std::max_element(arr + 1, arr + N + 1)); for(int i = 1; i <= N; i++){ answer(i, diff - arr[i] + 1); } }else{ int diff = *(std::min_element(arr + 1, arr + N + 1)); for(int i = 1; i <= N; i++){ answer(i, arr[i] - diff + 1); } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...