Submission #1359613

#TimeUsernameProblemLanguageResultExecution timeMemory
1359613adriines06A String Problem (EGOI25_stringproblem)C++20
16 / 100
61 ms11312 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
void solve(){
    int n; cin>>n;
    vector<pair<int,int>>v(n);
    map<int,int>mp,pos;
    vector<int>conec(2*n);
    for(int i=0;i<n;i++){
        int a,b; cin>>a>>b;
        v[i]={a,b};
        conec[a]=b;
        conec[b]=a;
        int x=(a+b)%(2*n);
        if(x%2!=0) mp[x]++;
        pos[a]=i;
        pos[b]=i;
    }
    int maxi=0,s;
    for(auto x: mp){
        maxi=max(maxi,x.second);
        if(maxi==x.second) s=x.first;
    }
    cout<<n-maxi<<"\n";
    int movs=n-maxi;
    if(maxi==0) s=2*n-1;
    int mal;
    for(int i=0;i<n;i++){
        int a=v[i].first, b=v[i].second;
        int x=(a+b)%(2*n);
        if(x!=s){
            mal=a;
        }
    }
    //w[i]= pin "chueco"
    int act=mal;
    while(movs--){
        //ir hacia act
        int pos1=(s-act+2*n)%(2*n);
        int desde=conec[pos1];
        cout<<pos[pos1]<<" "<<desde<<" "<<act<<"\n";
        act=desde;
    }

}
int main(){
    ios::sync_with_stdio(0);
    cout.tie(0);
    cin.tie(0);
    solve();
    return 0;
}
#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...