Submission #25524


Source Code Expand

#include<cstdio>
#include<vector>
#include<algorithm>

#define rep(i,n) for(int i=0;i<(n);i++)

using namespace std;

typedef long long ll;

const int N_MAX=100000;

template<class T>
class Fenwick_tree{
	int n;
	T a[N_MAX];

public:
	void build(int n){
		this->n=n;
		rep(i,n) a[i]=0;
	}

	void add(int i,T v){
		for(;i<n;i|=i+1) a[i]+=v;
	}

	T sum(int i,int j){
		if(i==0){
			T s=0;
			for(;j>=0;j=(j&(j+1))-1) s+=a[j];
			return s;
		}
		return sum(0,j)-sum(0,i-1);
	}
};

ll count_inversion(int n,const int *a){
	static Fenwick_tree<ll> F;
	F.build(n);
	ll res=0;
	rep(i,n){
		res+=F.sum(a[i]+1,n-1);
		F.add(a[i],1);
	}
	return res;
}

ll best_swap(int n,int m,int E[][2]){
	if(n==1) return 0;

	static vector<int> G[100000];
	rep(i,m){
		G[E[i][0]].push_back(E[i][1]);
		G[E[i][1]].push_back(E[i][0]);
	}

	int u0=-1;
	rep(u,n) if(G[u].size()==1) u0=u;
	if(u0==-1) return -1;

	int u=u0,pre=-1;
	static int seq[100000];
	seq[0]=u0;
	rep(i,n-1){
		int tmp=u;
		if(G[u][0]!=pre) u=G[u][0];
		else             u=G[u][1];
		seq[i+1]=u;
		pre=tmp;
	}

	static int seq2[100000];
	rep(i,n) seq2[i]=seq[n-i-1];

	return min(count_inversion(n,seq),count_inversion(n,seq2));
}

Submission Info

Submission Time
Task A - 国際道迷いオリンピック(International Michimayoi Olympic)
User fura2
Language IOI-Style C++ (GCC 5.4.1)
Score 54
Code Size 1252 Byte
Status WA
Exec Time 208 ms
Memory 10364 KB

Judge Result

Set Name Subtask1 Subtask2 Subtask3
Score / Max Score 10 / 10 44 / 44 0 / 46
Status
AC × 7
AC × 13
AC × 14
WA × 8
Set Name Test Cases
Subtask1 subtask1/1, subtask1/2, subtask1/3, subtask1/4, subtask1/5, subtask1/6, subtask1/7
Subtask2 subtask1/1, subtask1/2, subtask1/3, subtask1/4, subtask1/5, subtask1/6, subtask1/7, subtask2/1, subtask2/2, subtask2/3, subtask2/4, subtask2/5, subtask2/6
Subtask3 subtask1/1, subtask1/2, subtask1/3, subtask1/4, subtask1/5, subtask1/6, subtask1/7, subtask2/1, subtask2/2, subtask2/3, subtask2/4, subtask2/5, subtask2/6, subtask3/1, subtask3/2, subtask3/3, subtask3/4, subtask3/5, subtask3/6, subtask3/7, subtask3/8, subtask3/9
Case Name Status Exec Time Memory
subtask1/1 AC 25 ms 3068 KB
subtask1/2 AC 25 ms 3092 KB
subtask1/3 AC 25 ms 3060 KB
subtask1/4 AC 26 ms 3072 KB
subtask1/5 AC 25 ms 3212 KB
subtask1/6 AC 27 ms 3200 KB
subtask1/7 AC 21 ms 788 KB
subtask2/1 AC 29 ms 3324 KB
subtask2/2 AC 44 ms 4216 KB
subtask2/3 AC 108 ms 7164 KB
subtask2/4 AC 135 ms 8580 KB
subtask2/5 AC 141 ms 8556 KB
subtask2/6 AC 142 ms 8568 KB
subtask3/1 WA 54 ms 4592 KB
subtask3/2 WA 64 ms 5372 KB
subtask3/3 WA 59 ms 5620 KB
subtask3/4 WA 78 ms 6528 KB
subtask3/5 AC 110 ms 7036 KB
subtask3/6 WA 171 ms 9208 KB
subtask3/7 WA 202 ms 10356 KB
subtask3/8 WA 208 ms 10364 KB
subtask3/9 WA 25 ms 3104 KB