제출 #502343

#제출 시각아이디문제언어결과실행 시간메모리
502343vrohakXylophone (JOI18_xylophone)C++14
100 / 100
118 ms448 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+1], rj2[n+1]; int d[n+1], t[n+1], odg1, odg2, odg3, sss=1; 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; i++) { odg1 = d[i-2]; odg2 = d[i-1]; odg3 = t[i-1]; if(odg1+odg2 != odg3){ if(sss==0) sss = 1; else sss=0; } rj1[i] = rj1[i-1] + odg2 * (sss * 2 - 1); } int mn = 0, mx=0; for (int i = 1; i <= n; i++) { mn = min(mn, rj1[i]); mx = max(mx, rj1[i]); } mn = abs(mn) + 1; for (int i = 1; i <= n; i++) { rj2[i] = mx-rj1[i]+1; rj1[i] = rj1[i] + mn; } int idx1=0, idxn=0; for (int i = 1; i <= n; i++) { if(rj1[i] == 1) idx1 = i; if(rj1[i] == n) idxn = i; } if (idx1 < idxn) { for (int i = 1; i <= n; i++) { answer(i, rj1[i]); } } else { for (int i = 1; i <= n; i++) { answer(i, rj2[i]); } } return; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...