제출 #502228

#제출 시각아이디문제언어결과실행 시간메모리
502228vrohakXylophone (JOI18_xylophone)C++14
0 / 100
0 ms200 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 + 65], l1, l2, l3, stg1 = 0; rj1[1] = 0; int odg1 = query(1, 2); l1 = odg1; int odg2 = query(2, 3); l2 = odg2; int odg3 = query(1, 3); l3 = odg3; rj1[2] = odg1; if (odg3 == odg2 + odg1) { rj1[3] = odg1 + odg2; } else { stg1 = 1; rj1[3] = odg1 - odg2; } int od1[n + 65], od2[n + 56], od3[n + 99]; for (int i = 4; i < n + 1; i++) { odg1 = odg2; odg2 = query(i - 1, i); odg3 = query(i - 2, i); od1[i] = odg1; od2[i] = odg2; od3[i] = odg3; if (stg1 == 0) { if (odg3 == odg2 + odg1) { rj1[i] = rj1[i - 1] + odg2; } else { stg1 = 1; rj1[i] = rj1[i - 1] - odg2; } } else { if (odg3 == odg2 + odg1) { rj1[i] = rj1[i - 1] - odg2; } else { stg1 = 0; rj1[i] = rj1[i - 1] + odg2; } } } int mini1 = 0x3f3f3f3f; for (int i = 1; i < n + 1; i++) { mini1 = min(mini1, rj1[i]); } mini1 = abs(mini1) + 1; // ovdje je krivo bilo for (int i = 1; i < n + 1; i++) { rj1[i] = rj1[i] + mini1; } // ako je x negativan //ako je x negativan //ako je x negativan //ako je x // negativan //ako je x negativan //ako je x negativan //ako je x negativan // //ako je x negativan //ako je x negativan int rj2[n + 65]; rj2[1] = 0; int stg2 = 1; int odg11 = l1; int odg22 = l2; int odg33 = l3; rj2[2] = (-1) * odg11; if (odg33 == odg22 + odg11) { rj2[3] = -(odg11 + odg22); } else { stg2 = 0; rj2[3] = rj2[2] + odg22; } for (int i = 4; i < n + 1; i++) { odg11 = od1[i]; odg22 = od2[i]; odg33 = od3[i]; if (stg2 == 0) { if (odg33 == odg22 + odg11) { rj2[i] = rj2[i - 1] + odg22; } else { stg2 = 1; rj2[i] = rj2[i - 1] - odg22; } } else { if (odg33 == odg22 + odg11) { rj2[i] = rj2[i - 1] - odg22; } else { stg2 = 0; rj2[i] = rj2[i - 1] + odg22; } } } int mini2 = 0x3f3f3f3f; for (int i = 1; i < n + 1; i++) { mini2 = min(mini2, rj2[i]); } mini2 = abs(mini2) + 1; // tu isto je krivo jer mini2 moze biti negativan for (int i = 1; i < n + 1; i++) { rj2[i] = rj2[i] + mini2; } // < ispis > < ispis > < ispis > < ispis > < ispis > < ispis > < ispis > < // ispis > < ispis > < ispis > < ispis > < ispis > < ispis > < ispis > < // ispis > < ispis > < ispis > /* int mp1 = 0, mp2 = 0, pro = 0, niz[n + 55]; // memset(niz, 0, sizeof niz); for (int i = 1; i < n + 1; i++) { if (rj1[i] == 1) { pro++; } if (rj1[i] == n and pro == 0) { mp1++; break; } }*/ int idx1=-1, idx2=-1, mp1; for(int i=1;i<=n;i++){ if(rj1[i] == 1) idx1 = i; if(rj1[i] == n) idx2 = i; } /*for (int i = 1; i < n + 1; i++){ niz[rj1[i]]++; } for (int i = 1; i < n + 1; i++){ if (niz[i] == 0){ mp2 = 1; } }*/ if (idx1 < idx2) { 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; }

컴파일 시 표준 에러 (stderr) 메시지

xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:128:24: warning: unused variable 'mp1' [-Wunused-variable]
  128 |  int idx1=-1, idx2=-1, mp1;
      |                        ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...