Submission #501853

#TimeUsernameProblemLanguageResultExecution timeMemory
501853BornaCizmarevicXylophone (JOI18_xylophone)C++14
0 / 100
0 ms200 KiB
#include <bits/stdc++.h> #include "xylophone.h" using namespace std; /* int query (int a,int b){ cout<<a<<" "<<b<<"\n"; int pes; cin>>pes; return pes; } */ void solve (int n){ //ako je x pozitivan int rj1[n+65],l1,l2,l3; rj1[1]=0; int stg1 = 0; int odg1 = query (1, 2); int odg2 = query (2, 3); int odg3 = query (1, 3); l1=odg1; l2=odg2; 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 (odg3 == odg2 + odg1){ if (stg1 == 0){ rj1[i] = rj1[i - 1] + odg2; } else { rj1[i] = rj1[i - 1] - odg2; } } else { if (stg1 == 0){ stg1=1; rj1[i] = rj1[i - 1] - odg2; } else { stg1=0; rj1[i] = rj1[i - 1] + odg2; } } } int odp1 = query (1, n); int mini1 = 0x3f3f3f3f; for (int i = 1; i < n+1; i++){ mini1 = min(mini1 , rj1[i]); } mini1 = mini1*(-1) + 1; for (int i = 1;i < n+1; i++){ rj1[i] = rj1[i] + mini1; } //ako je x negativan int rj2[n+65]; rj2[1]=0; int stg2 = 1; int odg11 = l1/*0query (1, 2)*/; int odg22 = l2/*query (2, 3)*/; int odg33 = l3/*query (1, 3)*/; rj2[2] = (-1)*odg11; if (odg33 == odg22 + odg11){ rj2[3] = odg11 + odg22; rj2[3]*=(-1); } else { stg2 = 0; rj2[3] = rj2[2] + odg22; } for (int i = 4; i < n+1; i++){ odg11 = odg22; odg22 = od2[i]/*query(i - 1, i)*/; odg33 = od3[i]/*query(i - 2,i)*/; if (odg33 == odg22 + odg11){ if (stg2 == 0){ rj2[i] = rj2[i - 1] + odg22; } else { rj2[i] = rj2[i - 1] - odg22; } } else { if (stg2 == 0){ stg2=1; rj2[i] = rj2[i - 1] - odg22; } else { stg2=0; rj2[i] = rj2[i - 1] + odg22; } } } int odp2 = query (1, n); int mini2 = 0x3f3f3f3f; for (int i = 1;i < n+1; i++){ mini2 = min(mini2 , rj2[i]); } mini2 = mini2*(-1) + 1; for (int i = 1;i < n+1; i++){ rj2[i] = rj2[i] + mini2; } //ispis int zzz=0,por=0; for (int i=1;i<n+1;i++){ if (rj1[i]==1){ por++; } if (rj1[i]==n and por==0){ zzz++; break; } } int zpr=0; int niz[n+55]; memset(niz,0,sizeof niz); for (int i=1;i<n+1;i++){ niz[rj1[i]]++; } for (int i=1;i<n+1;i++){ if (niz[i]==0){ zpr=1; } } if (odp1 == n - 1 and zzz==0 and zpr==0){ for (int i = 1; i < n+1; i++){ cout << "answer(" << i << ", " << rj1[i] <<")\n"; } } else { for (int i = 1; i < n+1; i++){ cout << "answer(" << i << ", " << rj2[i] <<")\n"; } } return; } /*int main (){ int n; cin>>n; solve(n); return 0; }*/

Compilation message (stderr)

xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:33:7: warning: variable 'od1' set but not used [-Wunused-but-set-variable]
   33 |   int od1[n+65],od2[n+56],od3[n+99];
      |       ^~~
xylophone.cpp:109:7: warning: unused variable 'odp2' [-Wunused-variable]
  109 |   int odp2 = query (1, n);
      |       ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...