Submission #1369189

#TimeUsernameProblemLanguageResultExecution timeMemory
1369189ezzzayA String Problem (EGOI25_stringproblem)C++20
30 / 100
84 ms7196 KiB
#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
#define int long long
const int N=3e5; 
int D,n;
bool vis[N];
int id[N],ot[N],cnt[N];
signed main(){
	cin>>n;
	vector<int>v;
	
	pair<int,int>mx={-1,1};
	for(int i=0;i<n;i++){
		int l,r;
		cin>>l>>r;
		ot[l]=r;
		ot[r]=l;
		id[l]=id[r]=i;
		if((l+r)%2==0)continue;
		cnt[(l+r)%(2*n)]++;
		mx=max(mx,{cnt[(l+r)%(2*n)], (l+r)%(2*n)});
	}
	
	cout<<n-mx.ff<<endl;
	D=mx.ss;
	for(int i=0; i<2*n; i++){
        if((i+ot[i])%(2*n)==D)continue;
        int x=i;
        while(!vis[x]){
            int y= (2*n+D-x)%(2*n);
            cout<<id[x]<<" "<<ot[x]<<" "<<y<<endl;
            vis[x]=vis[y]=1;
            x=ot[y];
        }
    }
	
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...