162882025-04-20 12:11:58horkaSzimmetrikus sorozatcpp17Accepted 100/100428ms26164 KiB
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define sz(x) (int)x.size()
map<int, vector<int>> adj;
vector<array<int, 2>> ans;
void add(int a, int b)
{
    if(a==b) return;
    ans.pb({max(a,b),min(a,b)});
}
set<int> vis;
vector<int> curr;
int mini;
void dfs(int cs)
{
    vis.insert(cs);
    curr.push_back(cs);
    mini=min(mini,cs);
    for(int &i:adj[cs])
        if(!vis.count(i)) dfs(i);
}
int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int n; cin>>n;
    vector<int> v(n+1);
    for(int i=1; i<=n; i++)
        cin>>v[i];
    for(int i=1; i<=n/2; i++)
        if(v[i]!=v[n-i+1])
    {
        adj[v[i]].pb(v[n-i+1]);
        adj[v[n-i+1]].pb(v[i]);
    }
    for(int i=1; i<=n; i++)
        if(!vis.count(v[i]))
    {
        mini=1e9+10;
        curr.clear();
        dfs(v[i]);
        for(int &x:curr)
            add(x,mini);
    }
    cout<<sz(ans)<<"\n";
    for(auto [a,b]:ans)
        cout<<a<<" "<<b<<"\n";
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Accepted135ms10036 KiB
subtask29/9
3Accepted2ms316 KiB
4Accepted1ms316 KiB
5Accepted1ms316 KiB
6Accepted1ms316 KiB
7Accepted1ms316 KiB
subtask314/14
8Accepted1ms316 KiB
9Accepted1ms316 KiB
10Accepted1ms316 KiB
11Accepted1ms316 KiB
12Accepted1ms316 KiB
13Accepted1ms316 KiB
subtask425/25
14Accepted1ms328 KiB
15Accepted2ms316 KiB
16Accepted3ms564 KiB
17Accepted4ms588 KiB
18Accepted3ms564 KiB
19Accepted3ms564 KiB
20Accepted3ms564 KiB
21Accepted2ms576 KiB
subtask522/22
22Accepted209ms18936 KiB
23Accepted203ms26156 KiB
24Accepted221ms26164 KiB
25Accepted211ms18848 KiB
26Accepted187ms18856 KiB
27Accepted174ms25704 KiB
28Accepted170ms25704 KiB
29Accepted174ms18860 KiB
30Accepted166ms18860 KiB
31Accepted164ms25920 KiB
32Accepted153ms25896 KiB
33Accepted156ms18860 KiB
34Accepted162ms18860 KiB
35Accepted177ms22468 KiB
36Accepted165ms24144 KiB
37Accepted174ms18984 KiB
subtask630/30
38Accepted1ms508 KiB
39Accepted143ms10032 KiB
40Accepted2ms316 KiB
41Accepted1ms316 KiB
42Accepted1ms316 KiB
43Accepted1ms316 KiB
44Accepted1ms316 KiB
45Accepted1ms316 KiB
46Accepted1ms316 KiB
47Accepted1ms316 KiB
48Accepted1ms316 KiB
49Accepted1ms316 KiB
50Accepted1ms316 KiB
51Accepted1ms328 KiB
52Accepted2ms316 KiB
53Accepted3ms564 KiB
54Accepted4ms588 KiB
55Accepted3ms564 KiB
56Accepted3ms564 KiB
57Accepted3ms564 KiB
58Accepted2ms576 KiB
59Accepted209ms18936 KiB
60Accepted203ms26156 KiB
61Accepted221ms26164 KiB
62Accepted211ms18848 KiB
63Accepted187ms18856 KiB
64Accepted174ms25704 KiB
65Accepted170ms25704 KiB
66Accepted174ms18860 KiB
67Accepted166ms18860 KiB
68Accepted164ms25920 KiB
69Accepted153ms25896 KiB
70Accepted156ms18860 KiB
71Accepted162ms18860 KiB
72Accepted177ms22468 KiB
73Accepted165ms24144 KiB
74Accepted174ms18984 KiB
75Accepted418ms24228 KiB
76Accepted246ms13356 KiB
77Accepted64ms5888 KiB
78Accepted250ms13352 KiB
79Accepted150ms7104 KiB
80Accepted196ms14388 KiB
81Accepted173ms14384 KiB
82Accepted216ms14388 KiB
83Accepted428ms25568 KiB
84Accepted71ms6576 KiB
85Accepted158ms7876 KiB
86Accepted190ms15668 KiB
87Accepted190ms15668 KiB
88Accepted190ms15676 KiB
89Accepted165ms15668 KiB