| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 1271402 | SmuggingSpun | Doktor (COCI17_doktor) | C++20 | 102 ms | 38468 KiB | 
#include<bits/stdc++.h>
#define taskname "C"
using namespace std;
template<class T>bool maximize(T& a, T b){
	if(a < b){
		a = b;
		return true;
	}
	return false;
}
int main(){
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	if(fopen(taskname".inp", "r")){
		freopen(taskname".inp", "r", stdin);
	}
	int n;
	cin >> n;
	vector<int>a(n + 1), f(n + 1);
	vector<vector<int>>R(n << 1 | 1);
	f[0] = 0;
	for(int i = 1; i <= n; i++){
		int l = i, r;
		cin >> a[i];
		if(l > (r = a[i])){
			swap(l, r);
		}
		R[((l + r) >> 1) + (((r - l) & 1) ? n : 0)].emplace_back(r);
		f[i] = f[i - 1] + int(a[i] == i);
	}
	int best_l = 1, best_r = 1, best = 0;
	for(int i = 1; i <= n; i -= n - 1){
		if(!R[i].empty()){
			sort(R[i].begin(), R[i].end());
			for(int j = 0; j < R[i].size(); j++){
				int r = R[i][j];
				if(r > i){
					int l = (i << 1) - r;
					if(maximize(best, f[n] - f[r] + f[l - 1] - (f[r] - f[l - 1]) + j + 1 + int(a[i] == i))){
						best_l = l;
						best_r = r;
					}
				}
			}
		}
		if(!R[i += n].empty()){
			sort(R[i].begin(), R[i].end());
			for(int j = 0; j < R[i].size(); j++){
				int r = R[i][j];
				if(r > i){
					int l = (i << 1) - r + 1;
					if(maximize(best, f[n] - f[r] + f[l - 1] - (f[r] - f[l - 1]) + j + 1)){
						best_l = l;
						best_r = r;
					}
				}
			}
		}
	}
	cout << a[best_l] << " " << a[best_r];
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
