#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned int uint;
int n, s, m, idx;
bitset<50001> b, b1;
string odp;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n >> s;
for (int i = 0; i < s; i++)
{
cin >> m;
b[m] = true;
}
idx = n+1;
odp += "3 1\n";
idx++;
for (int i = 1; i <= n; i++)
{
if (b[i] == b1[i]) continue;
if (b[i])
{
odp += "1 " + to_string(idx-1) + " " + to_string(i) + "\n";
idx++;
for (int j = i; j <= n; j += i)
b1[j] = true;
}
else
{
odp += "3 " + to_string(i) + "\n";
idx++;
odp += "2 " + to_string(idx-2) + " " + to_string(idx-1) + "\n";
idx++;
for (int j = i; j <= n; j += i)
b1[j] = false;
}
}
cout << idx-n-1 << '\n' << odp;
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 | #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned int uint; int n, s, m, idx; bitset<50001> b, b1; string odp; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n >> s; for (int i = 0; i < s; i++) { cin >> m; b[m] = true; } idx = n+1; odp += "3 1\n"; idx++; for (int i = 1; i <= n; i++) { if (b[i] == b1[i]) continue; if (b[i]) { odp += "1 " + to_string(idx-1) + " " + to_string(i) + "\n"; idx++; for (int j = i; j <= n; j += i) b1[j] = true; } else { odp += "3 " + to_string(i) + "\n"; idx++; odp += "2 " + to_string(idx-2) + " " + to_string(idx-1) + "\n"; idx++; for (int j = i; j <= n; j += i) b1[j] = false; } } cout << idx-n-1 << '\n' << odp; return 0; } |
English