Submission #1217719

#TimeUsernameProblemLanguageResultExecution timeMemory
1217719vtnooArranging Shoes (IOI19_shoes)C++20
50 / 100
1095 ms1864 KiB
#include <bits/stdc++.h>
#define forsn(i,s,n) for(int i=s; i<n; ++i)
#define forn(i,n) forsn(i,0,n)
#define pb push_back
#define snd second
#define fst first
#define all(x) x.begin(), x.end()
#define imp(x) for(auto __:x)cout<<__<<" "; cout<<endl;
#define sz(c) int((c).size())
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
typedef vector<int> vi;

ll count_swaps(vi s) {
	int n=sz(s);
	ll ans=0;
	for(int i=0; i<n; i+=2){
		//~ cout<<s[i]<<endl;
		if(s[i]<0){
			forsn(j,i+1,n){
				if(s[j]>0&&s[j]==abs(s[i])){
					ans+=1ll*j-1ll*i-1ll*1;
					//~ cout<<ans<<endl;
					int aux2=s[j];
					s.erase(s.begin()+j);
					s.insert(s.begin()+i+1, aux2);
					break;
				}
			}
		}else{
			forsn(j,i+1,n){
				if(s[j]<0&&s[j]==-s[i]){
					ans+=1ll*j-1ll*i-1ll*1+1;
					//~ cout<<ans<<endl;
					int aux2=s[j];
					s.erase(s.begin()+j);
					s.insert(s.begin()+i+1, aux2);
					swap(s[i], s[i+1]);
					break;
				}
			}
		}
	}
	return 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...