Submission #20999

# Submission time Handle Problem Language Result Execution time Memory
20999 2017-03-27T10:57:18 Z model_code Swap (BOI16_swap) C++11
48 / 100
9 ms 12352 KB
#include <iostream>
#include <climits>

using namespace std;

struct T {
	T(int val) : val(val) { }
	T(T* a, T* b, bool* d) : val(0), a(a), b(b), d(d) { }
	
	int val;
	T* a;
	T* b;
	bool* d;
	
	int query() {
		if(val) {
			return val;
		} else if(*d) {
			return a->query();
		} else {
			return min(a->query(), b->query());
		}
	}
	bool del(int x) {
		if(val) {
			if(val == x) {
				val = INT_MAX;
				return true;
			}
			return false;
		} else if(*d) {
			return a->del(x);
		} else {
			if(a->del(x)) {
				*d = true;
				return true;
			}
			if(b->del(x)) {
				*d = true;
				swap(*a, *b);
				return true;
			}
			return false;
		}
	}
};

T* t[202020];

int main() {
	cin.sync_with_stdio(false);
	cin.tie(nullptr);
	
	int n;
	cin >> n;
	for(int i = 1; i <= n; ++i) {
		int x;
		cin >> x;
		t[i] = new T(x);
	}
	
	for(int i = 2; i <= n; ++i) {
		T* a = t[i / 2];
		T* b = t[i];
		bool* d = new bool(false);
		t[i / 2] = new T(a, b, d);
		t[i] = new T(b, a, d);
	}
	
	for(int i = 1; i <= n; ++i) {
		int val = t[i]->query();
		t[i]->del(val);
		if(i != 1) cout << ' ';
		cout << val;
	}
	cout << '\n';
	
	return 0;
}

Compilation message


# Verdict Execution time Memory Grader output
1 Correct 0 ms 3772 KB Output is correct
2 Correct 0 ms 3772 KB Output is correct
3 Correct 0 ms 3772 KB Output is correct
4 Correct 0 ms 3772 KB Output is correct
5 Correct 0 ms 3772 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 3772 KB Output is correct
2 Correct 0 ms 3772 KB Output is correct
3 Correct 0 ms 3772 KB Output is correct
4 Correct 0 ms 3772 KB Output is correct
5 Correct 0 ms 3772 KB Output is correct
6 Correct 0 ms 3772 KB Output is correct
7 Correct 0 ms 3772 KB Output is correct
8 Correct 0 ms 3772 KB Output is correct
9 Correct 0 ms 3772 KB Output is correct
10 Correct 0 ms 3772 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 3772 KB Output is correct
2 Correct 0 ms 3772 KB Output is correct
3 Correct 0 ms 3772 KB Output is correct
4 Correct 0 ms 3772 KB Output is correct
5 Correct 0 ms 3772 KB Output is correct
6 Correct 0 ms 3772 KB Output is correct
7 Correct 0 ms 3772 KB Output is correct
8 Correct 0 ms 3772 KB Output is correct
9 Correct 0 ms 3772 KB Output is correct
10 Correct 0 ms 3772 KB Output is correct
11 Correct 0 ms 3904 KB Output is correct
12 Correct 0 ms 3904 KB Output is correct
13 Correct 0 ms 3904 KB Output is correct
14 Correct 0 ms 3904 KB Output is correct
15 Correct 0 ms 3904 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 3772 KB Output is correct
2 Correct 0 ms 3772 KB Output is correct
3 Correct 0 ms 3772 KB Output is correct
4 Correct 0 ms 3772 KB Output is correct
5 Correct 0 ms 3772 KB Output is correct
6 Correct 0 ms 3772 KB Output is correct
7 Correct 0 ms 3772 KB Output is correct
8 Correct 0 ms 3772 KB Output is correct
9 Correct 0 ms 3772 KB Output is correct
10 Correct 0 ms 3772 KB Output is correct
11 Correct 0 ms 3904 KB Output is correct
12 Correct 0 ms 3904 KB Output is correct
13 Correct 0 ms 3904 KB Output is correct
14 Correct 0 ms 3904 KB Output is correct
15 Correct 0 ms 3904 KB Output is correct
16 Runtime error 9 ms 12352 KB Execution killed because of forbidden syscall writev (20)
17 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 3772 KB Output is correct
2 Correct 0 ms 3772 KB Output is correct
3 Correct 0 ms 3772 KB Output is correct
4 Correct 0 ms 3772 KB Output is correct
5 Correct 0 ms 3772 KB Output is correct
6 Correct 0 ms 3772 KB Output is correct
7 Correct 0 ms 3772 KB Output is correct
8 Correct 0 ms 3772 KB Output is correct
9 Correct 0 ms 3772 KB Output is correct
10 Correct 0 ms 3772 KB Output is correct
11 Correct 0 ms 3904 KB Output is correct
12 Correct 0 ms 3904 KB Output is correct
13 Correct 0 ms 3904 KB Output is correct
14 Correct 0 ms 3904 KB Output is correct
15 Correct 0 ms 3904 KB Output is correct
16 Runtime error 9 ms 12352 KB Execution killed because of forbidden syscall writev (20)
17 Halted 0 ms 0 KB -