제출 #502345

#제출 시각아이디문제언어결과실행 시간메모리
502345vrohakXylophone (JOI18_xylophone)C++17
100 / 100
98 ms360 KiB
#include <bits/stdc++.h> #include "xylophone.h" using namespace std; void solve(int n) { // ako je x pozitivan //ako je x pozitivan //ako je x pozitivan //ako je x // pozitivan //ako je x pozitivan //ako je x pozitivan //ako je x pozitivan // //ako je x pozitivan int rj1[n], rj2[n]; int d[n], t[n], odg1, odg2, odg3, sss=0; for(int i=1;i<n;i++){ d[i] = query(i, i+1); if(i!=1) t[i] = query(i-1, i+1); } odg2=d[1]; rj1[1] = 0; rj1[2] = odg2; for (int i = 3; i < n + 1; i++) { odg1 = d[i-2]; odg2 = d[i-1]; odg3 = t[i-1]; if (sss == 0) { if (odg3 == odg2 + odg1) { rj1[i] = rj1[i - 1] + odg2; } else { sss = 1; rj1[i] = rj1[i - 1] - odg2; } } else { if (odg3 == odg2 + odg1) { rj1[i] = rj1[i - 1] - odg2; } else { sss = 0; rj1[i] = rj1[i - 1] + odg2; } } } int mn = 0, mx=0; for (int i = 1; i < n + 1; i++) { mn = min(mn, rj1[i]); mx = max(mx, rj1[i]); } mn = abs(mn) + 1; for (int i = 1; i < n + 1; i++) { rj2[i] = mx-rj1[i]+1; rj1[i] = rj1[i] + mn; } int idx1=0, idxn=0; for (int i = 1; i < n + 1; i++) { if(rj1[i] == 1) idx1 = i; if(rj1[i] == n) idxn = i; } if (idx1 < idxn) { for (int i = 1; i < n + 1; i++) { answer(i, rj1[i]); } } else { for (int i = 1; i < n + 1; i++) { answer(i, rj2[i]); } } return; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...