제출 #201731

#제출 시각아이디문제언어결과실행 시간메모리
201731susko3Xylophone (JOI18_xylophone)C++11
100 / 100
103 ms508 KiB
#include "xylophone.h" #include<bits/stdc++.h> using namespace std; int raz(int a, int b, int c) { return max(a, max(b, c)) - min(a, min(b, c)); } int rj(int s1, int s2, int pov, int uk) { int novi = raz(s1, s2, s2+pov); if(novi == uk) { return s2+pov; } else { return s2-pov; } } void solve(int N) { int bar[100000]; bar[1] = 0; bar[2] = query(1, 2); for(int i = 3; i <= N; i++) { int dva = query(i-1, i); int tri = query(i-2, i); bar[i] = rj(bar[i-2], bar[i-1], dva, tri); } int mali_naj = 10000000; int mali_ind = 0; int veli_naj = -10000000; int veli_ind = 0; for(int i = 1; i <= N; i++) { if(bar[i] < mali_naj) { mali_naj = bar[i]; mali_ind = i; } if(bar[i] > veli_naj) { veli_naj = bar[i]; veli_ind = i; } } /* for(int i = 1; i <= N; i++) { cout << i << ' ' << bar[i] << endl; } cout << "???????\n"; cout << mali_naj << ' ' << mali_ind << endl << veli_naj << ' ' << veli_ind << endl; cout << "=======\n";*/ int poc = 1 - mali_naj; if(veli_ind > mali_ind) { for(int i = 1; i <= N; i++) { bar[i] += poc; } } else { for(int i = 1; i <= N; i++) { bar[i] = N + 1 - bar[i] - poc; } } /* cout << "\nrj:\n"; for(int i = 1; i <= N; i++) { cout << i << ' ' << bar[i] << endl; }*/ for(int i = 1; i <= N; i++) { answer(i, bar[i]); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...