#include <iostream>
using namespace std;
const int MAXN = 1e5 + 7;
int tab[MAXN];
const int stala = 100000;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int n, m;
cin >> n >> m;
int val;
for (int i = 0; i < m; i++){
cin >> val;
tab[val] = 1;
}
cout << stala << '\n';
int good = n + 1;
int bad = n + 1;
cout << 3 << ' ' << 1 << '\n';
int akt = n + 2;
if (tab[n]) good = n;
else bad = n;
for (int i = n - 1; i >= 1; i--){
if (tab[i]){
if (i > n / 2){
cout << 1 << ' ' << good << ' ' << i << '\n';
good = akt;
akt++;
}
else{
cout << 3 << ' ' << bad << '\n';
akt++;
cout << 2 << ' ' << akt - 1 << ' ' << i << '\n';
akt++;
cout << 1 << ' ' << good << ' ' << akt - 1 << '\n';
good = akt;
akt++;
}
}
else{
if (i > n / 2){
cout << 1 << ' ' << bad << ' ' << i << '\n';
bad = akt;
akt++;
}
else{
cout << 3 << ' ' << good << '\n';
akt++;
cout << 2 << ' ' << akt - 1 << ' ' << i << '\n';
akt++;
cout << 1 << ' ' << bad << ' ' << akt - 1 << '\n';
bad = akt;
akt++;
}
}
}
for (int i = akt; akt <= n + stala - 1; i++){
cout << 3 << ' ' << 1 << '\n';
akt++;
}
if (akt == n + stala) cout << 1 << ' ' << n + 1 << ' ' << good << '\n';
return 0;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | #include <iostream> using namespace std; const int MAXN = 1e5 + 7; int tab[MAXN]; const int stala = 100000; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n, m; cin >> n >> m; int val; for (int i = 0; i < m; i++){ cin >> val; tab[val] = 1; } cout << stala << '\n'; int good = n + 1; int bad = n + 1; cout << 3 << ' ' << 1 << '\n'; int akt = n + 2; if (tab[n]) good = n; else bad = n; for (int i = n - 1; i >= 1; i--){ if (tab[i]){ if (i > n / 2){ cout << 1 << ' ' << good << ' ' << i << '\n'; good = akt; akt++; } else{ cout << 3 << ' ' << bad << '\n'; akt++; cout << 2 << ' ' << akt - 1 << ' ' << i << '\n'; akt++; cout << 1 << ' ' << good << ' ' << akt - 1 << '\n'; good = akt; akt++; } } else{ if (i > n / 2){ cout << 1 << ' ' << bad << ' ' << i << '\n'; bad = akt; akt++; } else{ cout << 3 << ' ' << good << '\n'; akt++; cout << 2 << ' ' << akt - 1 << ' ' << i << '\n'; akt++; cout << 1 << ' ' << bad << ' ' << akt - 1 << '\n'; bad = akt; akt++; } } } for (int i = akt; akt <= n + stala - 1; i++){ cout << 3 << ' ' << 1 << '\n'; akt++; } if (akt == n + stala) cout << 1 << ' ' << n + 1 << ' ' << good << '\n'; return 0; } |
English