Submission #310352

#TimeUsernameProblemLanguageResultExecution timeMemory
310352galcaZagonetka (COI18_zagonetka)C++14
0 / 100
50 ms488 KiB
#include <iostream>
#include <vector>

using namespace std;

int si, sj;

bool valid(vector<int>& perm) {
	return true; // perm[si] < perm[sj];
}

int main() {
	int n;
	cin >> n;

	int i, j;

	vector<int> p(n);
	for (i = 0; i < n; i++) {
		cin >> p[i];
	}

	//cin >> si >> sj;

	// assume 1 cond
	
	bool found = false;
	for (i = 0; i < n - 1; i++) {
		for (j = i + 1; j < n; j++) {
			vector<int> q;
			
			cout << "query";
			int k;
			for (k = 0; k < i; k++) {
				cout << " " << p[k];
				q.push_back(p[k]);
			}
			cout << " " << p[j];
			q.push_back(p[j]);
			++k;
			for (; k < j; k++) {
				cout << " " << p[k];
				q.push_back(p[k]);
			}
			cout << " " << p[i];
			q.push_back(p[i]);
			++k;
			for (; k < n; k++) {
				cout << " " << p[k];
				q.push_back(p[k]);
			}
			cout << endl; // endl auto-flushes
			int result1 = valid(q);
			//cin >> result1;
			if (!result1) {
				found = true;
				break;
			}
		}
		if (found) {
			break;
		}
	}
	vector<int> minp(n);
	vector<int> maxp(n);

	cout << "end" << endl;
	int k;
	int minval = 0;
	int maxval = n-1;

	int first = i < j ? i : j;
	int second = i < j ? j : i;

	for (k = 0; k < first; k++) {
		minp[k] = minval++;
		maxp[k] = maxval--;

	}
	if (k == n - 1) {
		minp[k] = minval++;
		maxp[k] = maxval--;
	}
	else {
		if (p[i] < p[j]) {
			minp[first] = minval++;
			minp[second] = minval++;
			maxp[second] = maxval--;
			maxp[first] = maxval--;
			for (int l = first + 1; l < second; l++) {
				minp[l] = minval++;
				maxp[l] = maxval--;
			}
		}
		else {
			minp[second] = minval++;
			minp[first] = minval++;
			maxp[first] = maxval--;
			maxp[second] = maxval--;
			for (int l = first + 1; l < second; l++) {
				minp[l] = minval++;
				maxp[l] = maxval--;
			}
		}
		for (k = second + 1; k < n; k++) {
			minp[k] = minval++;
			maxp[k] = maxval--;
		}
	}

	for (k=0; k < n; k++) {
		cout << " " << minp[k]+1;
	}
	cout << endl;
	for (k = 0; k < n; k++) {
		cout << " " << maxp[k]+1;
	}
	cout << endl; // endl auto-flushes

	return 0;
}

Compilation message (stderr)

zagonetka.cpp: In function 'int main()':
zagonetka.cpp:16:9: warning: 'j' may be used uninitialized in this function [-Wmaybe-uninitialized]
   16 |  int i, j;
      |         ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...