#include <bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false), cin.tie(nullptr);
int N, S;
cin >> N >> S;
vector<int> in_S(N+1);
for(int i = 0; i < S; i++){
int a;
cin >> a;
in_S[a] = 1;
}
vector<tuple<int, int, int> > ops;
for(int i = 1; i <= N; i++){
ops.push_back({3, i, 0});
}
int cur;
if(in_S[1]){
ops.push_back({1, 1, 1});
} else {
ops.push_back({1, N+1, N+1});
}
cur = 2*N+1;
for(int i = 2; i <= N; i++){
if(in_S[i]){
ops.push_back({1, cur, i});
} else {
ops.push_back({2, cur, N+i});
}
cur = 2*N + i;
}
cout << ops.size() << '\n';
for(auto [a, b, c] : ops){
if(a == 3){
cout << a << ' ' << b << '\n';
} else {
cout << a << ' ' << b << ' ' << c << '\n';
}
}
}
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 | #include <bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(false), cin.tie(nullptr); int N, S; cin >> N >> S; vector<int> in_S(N+1); for(int i = 0; i < S; i++){ int a; cin >> a; in_S[a] = 1; } vector<tuple<int, int, int> > ops; for(int i = 1; i <= N; i++){ ops.push_back({3, i, 0}); } int cur; if(in_S[1]){ ops.push_back({1, 1, 1}); } else { ops.push_back({1, N+1, N+1}); } cur = 2*N+1; for(int i = 2; i <= N; i++){ if(in_S[i]){ ops.push_back({1, cur, i}); } else { ops.push_back({2, cur, N+i}); } cur = 2*N + i; } cout << ops.size() << '\n'; for(auto [a, b, c] : ops){ if(a == 3){ cout << a << ' ' << b << '\n'; } else { cout << a << ' ' << b << ' ' << c << '\n'; } } } |
English