Submission #502357

#TimeUsernameProblemLanguageResultExecution timeMemory
502357vrohakXylophone (JOI18_xylophone)C++17
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], l1, l2, l3, stg1 = 0;	rj1[1]=0;
		int odg1 = query (1, 2), odg2;	l1=odg1;
		
  		odg2 = rj1[2] = odg1;
		
		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 pt1 = query (1, n), mini1 = 0;
		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 //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 = l1;			int odg33;
  		rj2[2] = -odg22;
		
		for (int i = 3; 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;
				}
			}
		}
		
		int mini2 = 0;
		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 > < 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++){
				cout << "answer(" << i << ", " << rj1[i] << ")" << endl; 
			}
		}
		else {
			for (int i = 1; i < n + 1; i++){
				cout << "answer(" << i << ", " << rj2[i] << ")" << endl; 
			}
		}
		
	return;
}

/*int main (){
	
	int n;
	cin>>n;
	solve(n);
	
	return 0;
}*/

Compilation message (stderr)

xylophone.cpp: In function 'void solve(int)':
xylophone.cpp:25:41: error: 'odg3' was not declared in this scope; did you mean 'od3'?
   25 |    odg1 = odg2;  odg2 = query(i-1, i);  odg3 = query(i-2, i);
      |                                         ^~~~
      |                                         od3
xylophone.cpp:18:24: warning: unused variable 'l2' [-Wunused-variable]
   18 |   int rj1[n + 65], l1, l2, l3, stg1 = 0; rj1[1]=0;
      |                        ^~
xylophone.cpp:18:28: warning: unused variable 'l3' [-Wunused-variable]
   18 |   int rj1[n + 65], l1, l2, l3, stg1 = 0; rj1[1]=0;
      |                            ^~