Submission #1120703

#TimeUsernameProblemLanguageResultExecution timeMemory
1120703chuyenluagaUntitled (POI11_rot)C++17
45 / 100
1081 ms25412 KiB
// Source: https://oj.uz/problem/view/POI11_rot
// State: Writing...


#include <bits/stdc++.h>
using namespace std;
#define int long long


int ans = 0;
set <int> solve(){
	int x;
	set<int> s1,s2;
	cin >> x;
	if (x != 0){
		s1.insert(x);
		return s1;
	}
	s1 = solve();
	s2 = solve();
	if (s1.size() < s2.size()) swap(s1,s2);

	auto i1 = s1.begin(), i2 = s2.begin();
	int count = 0,nghich = 0;
	while (i2 != s2.end()){
		while (*i1 < *i2 && i1 != s1.end()){
			i1++;
			count++;
		}
		nghich = nghich + count;
		i2++;
	}
	ans = ans + min(nghich,(int)s1.size()*(int)s2.size() - nghich);
	//cout << ans << endl;
	for (int v : s2){
		s1.insert(v);
	}
	return s1;
}


int32_t main() {
	int n;
	cin >> n;
	solve();
	cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...