Submission #1274177

#TimeUsernameProblemLanguageResultExecution timeMemory
1274177hgmhcArranging Shoes (IOI19_shoes)C++20
50 / 100
1095 ms1968 KiB
#include "shoes.h"
#include <bits/stdc++.h>
using namespace std; using ll = long long; using ii = pair<ll,ll>; using vi = vector<ll>;
#define rep(i,a,b) for (ll i = (a); i <= (b); ++i)
#define per(i,a,b) for (ll i = (b); i >= (a); --i)
#define all(x) (x).begin(), (x).end()
#define siz(x) ll((x).size())
#define Mup(x,y) (x = max(x,y))
#define mup(x,y) (x = min(x,y))
#define fi first
#define se second
#define pb push_back
#define dbg(...) fprintf(stderr,__VA_ARGS__)
// #define int do not use int

ll count_swaps(vector<int> s) {
	ll n = siz(s), cnt=0;
	rep(i,0,n-1) {
		rep(j,i+1,n-1) {
			if (s[j]==-s[i]) {
				per(k,i+1,j-1) {
					swap(s[k], s[k+1]);
					cnt++;
				}
				break;
			}
		}
		if (s[i]>0) swap(s[i], s[i+1]), cnt++;
		i++;
	}
	
	// rep(i,0,n-1) cerr << s[i] << ' ';
	// cerr << endl;
	
	return cnt;
}

#ifdef LOCAL

int main() {
	int n;
	assert(1 == scanf("%d", &n));
	vector<int> S(2 * n);
	for (int i = 0; i < 2 * n; i++)
		assert(1 == scanf("%d", &S[i]));
	fclose(stdin);

	long long result = count_swaps(S);

	printf("%lld\n", result);
	fclose(stdout);
	return 0;
}

#endif
#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...