Submission #502281

#TimeUsernameProblemLanguageResultExecution timeMemory
502281vrohakXylophone (JOI18_xylophone)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>

#include "xylophone.h"

using namespace std;

/*int query (int a,int b){
        cout<<a<<" "<<b<<endl;
        int pes;
        cin>>pes;
        return pes;

}*/

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], stg1 = 0;
   int od1[n + 65], od2[n + 56], od3[n + 99];
   rj1[1] = 0;
   int odg1;
   odg1 = query(1, 2);
   od1[0] = odg1;
   int odg2;
   odg2 = query(2, 3);
   od2[0] = odg2;
   int odg3;
   odg3 = query(1, 3);
   od3[0] = odg3;

   rj1[2] = odg1;

   if (odg3 == odg2 + odg1) {
      rj1[3] = rj1[2] + odg2;
   } else {
      stg1 = 1;
      rj1[3] = rj1[2] - odg2;
   }

   
   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 pt1 = query(1, n), mn = 0x3f3f3f3f;
   for (int i = 1; i < n + 1; i++) {
      mn = min(mn, rj1[i]);
   }
   mn = mn * (-1) + 1;
   for (int i = 1; i < n + 1; i++) {
      rj1[i] = rj1[i] + mn;
   }

   // 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 = od1[0];
   int odg22 = od2[0];
   int odg33 = od3[0];
   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];
      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;
         }
      }
   }

   mn = 0x3f3f3f3f;
   for (int i = 1; i < n + 1; i++) {
      mn = min(mn, rj2[i]);
   }
   mn = mn * (-1) + 1;
   for (int i = 1; i < n + 1; i++) {
      rj2[i] = rj2[i] + mn;
   }

   // < 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;
      }
   }

   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 (pt1 == n - 1 and mp1 == 0 and mp2 == 0) {
      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;
}

Compilation message (stderr)

xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:97:20: error: expected ';' before 'odg22'
   97 |       odg11 = odg22
      |                    ^
      |                    ;
   98 |       odg22 = od2[i];
      |       ~~~~~