Submission #501942

#TimeUsernameProblemLanguageResultExecution timeMemory
501942BornaCizmarevicXylophone (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<<"\n";
	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);	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 pt1 = query (1, n), 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 //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;		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;
				}
			}
		}
		
		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 > < 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] << ")\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:31:7: warning: variable 'od1' set but not used [-Wunused-but-set-variable]
   31 |   int od1[n + 65], od2[n + 56], od3[n + 99];
      |       ^~~
xylophone.cpp:99:7: warning: unused variable 'odp2' [-Wunused-variable]
   99 |   int odp2 = query (1, n);
      |       ^~~~
/usr/bin/ld: /tmp/ccFjVq6I.o: in function `query(int, int)':
grader.cpp:(.text+0x0): multiple definition of `query(int, int)'; /tmp/ccnxDiUI.o:xylophone.cpp:(.text+0x0): first defined here
/usr/bin/ld: /tmp/ccFjVq6I.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccnxDiUI.o:xylophone.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status