제출 #1357778

#제출 시각아이디문제언어결과실행 시간메모리
1357778neptunnsA String Problem (EGOI25_stringproblem)C++20
0 / 100
2095 ms4052 KiB
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define int long long
#define maxn 500005
#define mi LLONG_MIN
#define ma LLONG_MAX
#define mod 1000000007
#define pb push_back
#define S second
#define F first
struct st {
    int c, x, y;
};
void solve() {
    int n;
    cin >> n;
    vector<pair<int, int>> a(n * 2);
    for (int i = 0; i < n; i++) {
        int l, r;
        cin >> l >> r;
        a[l] = {i, r};
        a[r] = {i, l};
    }
    int ans = ma;
    vector<st> vec;
    for (int x = 0; x < n * 2; x++) {
        int y = (x + 1) % (n * 2);
        vector<st> v;
        vector<pair<int, int>> na = a;
        for (int l = x, r = y, cnt = 0; cnt < n; cnt++) {
            // cout << l << " " << r << "\n";
            if (na[l].S != r) {
                if (na[l].F != -1) {
                    v.pb({na[l].F, na[l].S, r});
                    na[na[l].S].F = -1;
                    na[l].S = r;
                } else {
                    v.pb({na[r].F, na[r].S, l});
                    na[na[r].S].F = -1;
                    na[r].S = l;
                }
            }
            l = (l - 1 + n * 2) % (n * 2);
            r = (r + 1) % (n * 2);
        }
        // cout << "\n";
        /*cout << v.size() << "\n";
        for (auto [p, s, e] : v) {
            cout << p << " " << s << " " << e << "\n";
        }*/
        if (v.size() < ans) {
            ans = v.size();
            vec = v;
        }
    }
    cout << ans << "\n";
    for (auto [p, s, e] : vec) {
        cout << p << " " << s << " " << e << "\n";
    }
}

int32_t main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int t = 1;
    // cin >> t;
    while (t--) solve();
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…