제출 #1368130

#제출 시각아이디문제언어결과실행 시간메모리
1368130hahahaA String Problem (EGOI25_stringproblem)C++20
20 / 100
82 ms5756 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define f first
#define s second
#define pb push_back
const int N=1e5+1;
struct coord{
    int a;
    int b;
};
vector<coord>pin;
int n;
bool fixat[2*N+2];
int str[2*N+2];
signed main(){
    cin>>n;
    int mod=2*n;
    for (int i=0; i<mod; i++)
        fixat[i]=1;
    for(int i=0; i<n; i++){
        int x,y;
        cin>>x>>y;
        str[x]=i;
        str[y]=i;
        if(y<x) swap(x,y);
        pin.pb({x,y});
    }

    int ans=n;
    int rot=1;
    for (int i=0; i<2*n+2; i++){fixat[i]=false; }
    for (int i=0; i<n; i++) {
        int x=pin[i].a;
        int y=pin[i].b;
        if ((x+y)%mod==rot){fixat[i]=true; ans--;}
    }
    cout<<ans<<endl;
    for (int i=0; i<n; i++){
        if (fixat[i])continue;
        int amu=i;
       do {
            int x=pin[amu].b;
            int y=pin[amu].a;
            cout<<amu<<" "<<x<<" "<<(mod+1-y)%mod<<endl;
            fixat[amu]=true;
            amu=str[(mod+1-y)%mod];
        } while(!fixat[amu]);
    }
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…