제출 #1237102

#제출 시각아이디문제언어결과실행 시간메모리
1237102MuhammadSaramArranging Shoes (IOI19_shoes)C++20
45 / 100
21 ms3776 KiB
#include "shoes.h"
#include <bits/stdc++.h>

using namespace std;

const int M = 2e5 + 1;

int fen[M];

void modify(int p,int x)
{
	while (p<M)
		fen[p]+=x,p+=p&-p;
}

int get(int p)
{
	int ans=0;
	while (p)
		ans+=fen[p], p^=p&-p;
	return ans;
}

long long count_swaps(vector<int> a)
{
	int n=a.size();
	vector<int> v[2];
	for (int i=0;i<n;i++)
		modify(i+1,1), v[a[i]>0].push_back(i);
	reverse(v[0].begin(), v[0].end());
	reverse(v[1].begin(), v[1].end());
	long long ans=0;
	for (int i=0;i<n;i++)
		ans+=get(v[i%2].back()),modify(v[i%2].back()+1,-1),v[i%2].pop_back();
	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...