Submission #1355961

#TimeUsernameProblemLanguageResultExecution timeMemory
1355961kenArranging Shoes (IOI19_shoes)C++20
Compilation error
0 ms0 KiB
#include "shoes.h"
#include <cstdio>
#include <cassert>

using namespace std;

//
#include "shoes.h"
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

int fw[100050];
queue <int> qu1[100050];//positive
queue <int> qu2[100050];//negative, store as positive

void update(int id,int n,int va){
	for (int i = id; i<=n; i+=(i&-i)){
		fw[i]+=va;
	}
}

int query(int id,int n){
	int tmp = 0;
	for (int i = id; i>=1; i-=(i&-i)){
		tmp += fw[i];
	}
	return tmp;
}

long long count_swaps(std::vector<int> s) {
	ll si = s.size();
	//cout << si << "\n";
	ll ans = 0;
	for (ll i=0; i<si; i++){
		//cout << i << ' ';
		int tmi = i - query(i+1,si);
		if(s[i] > 0){
			if(!qu2[s[i]].size()){
				qu1[s[i]].push(i);
			}else{
				ans += tmi - (qu2[s[i]].front() + query(qu2[s[i]].front()+1,si)) - 1;
				//cout << i << "|" << tmi - (qu2[s[i]].front() - query(qu2[s[i]].front()+1,si)) - 1 << " " << tmi << " " << qu2[s[i]].front() << " " << query(qu2[s[i]].front()+1,si) << "|\n";
				update(qu2[s[i]].front()+1,si,1);
				update(i+1,si,-1);
				qu2[s[i]].pop();
			}
		}else{
			s[i] *= -1;
			if(!qu1[s[i]].size()){
				qu2[s[i]].push(i);
			}else{
				ans += tmi - (qu1[s[i]].front() + query(qu1[s[i]].front()+1,si));
				//cout << i << "|" << tmi - (qu1[s[i]].front() - query(qu1[s[i]].front()+1,si)) << " " << tmi << " " << qu1[s[i]].front() << " " << query(qu1[s[i]].front()+1,si) << "||\n";
				update(qu1[s[i]].front()+1,si,1);
				update(i+1,si,-1);
				qu1[s[i]].pop();
			}
		}
		//cout << "E";
	}
	return ans;
}

//


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;
}

Compilation message (stderr)

/usr/bin/ld: /tmp/cctsACAo.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccVCatbm.o:shoes.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status