Submission #1217612

#TimeUsernameProblemLanguageResultExecution timeMemory
1217612vtnooArranging Shoes (IOI19_shoes)C++20
10 / 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;

int n;

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