#include <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define ff first #define ss second #define MOD 1000000009 #define INF 1000000019 #define INFL 1000000000000000099LL ll n,q,m,a,b,c,d,k,ak; int main() { ios_base::sync_with_stdio(0);cin.tie(0); bitset<50007>bs[100007]; for(ll i=0;i<100007;i++)bs[i].reset(); cin>>n>>k; for(ll i=0;i<k;i++){ cin>>a; bs[0][a]=1; } for(ll i=1;i<=n;i++){ for(ll j=i;j<=n;j+=i)bs[i][j]=1; } ak=n+1; if(bs[0][1]){ // cout<<"1 1 1\n"; bs[ak]=bs[1]; } else{ // cout<<"3 1\n"; } for(ll i=2;i<=n;i++){ if(bs[ak][i]!=bs[0][i]){ if(bs[ak][i]){ // cout<<"3 "<<i<<"\n"; bs[ak+1]=~bs[i]; // cout<<"2 "<<ak<<" "<<ak+1<<"\n"; bs[ak+2]=bs[ak+1]&bs[ak]; ak+=2; } else{ // cout<<"1 "<<ak<<" "<<i<<"\n"; bs[ak+1]=bs[ak]|bs[i]; ak++; } } } for(ll i=1;i<100007;i++)bs[i].reset(); for(ll i=1;i<=n;i++){ for(ll j=i;j<=n;j+=i)bs[i][j]=1; } cout<<ak-n<<"\n"; ak=n+1; if(bs[0][1]){ cout<<"1 1 1\n"; bs[ak]=bs[1]; } else{ cout<<"3 1\n"; } for(ll i=2;i<=n;i++){ if(bs[ak][i]!=bs[0][i]){ if(bs[ak][i]){ cout<<"3 "<<i<<"\n"; bs[ak+1]=~bs[i]; cout<<"2 "<<ak<<" "<<ak+1<<"\n"; bs[ak+2]=bs[ak+1]&bs[ak]; ak+=2; } else{ cout<<"1 "<<ak<<" "<<i<<"\n"; bs[ak+1]=bs[ak]|bs[i]; ak++; } } } 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 <bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define ff first #define ss second #define MOD 1000000009 #define INF 1000000019 #define INFL 1000000000000000099LL ll n,q,m,a,b,c,d,k,ak; int main() { ios_base::sync_with_stdio(0);cin.tie(0); bitset<50007>bs[100007]; for(ll i=0;i<100007;i++)bs[i].reset(); cin>>n>>k; for(ll i=0;i<k;i++){ cin>>a; bs[0][a]=1; } for(ll i=1;i<=n;i++){ for(ll j=i;j<=n;j+=i)bs[i][j]=1; } ak=n+1; if(bs[0][1]){ // cout<<"1 1 1\n"; bs[ak]=bs[1]; } else{ // cout<<"3 1\n"; } for(ll i=2;i<=n;i++){ if(bs[ak][i]!=bs[0][i]){ if(bs[ak][i]){ // cout<<"3 "<<i<<"\n"; bs[ak+1]=~bs[i]; // cout<<"2 "<<ak<<" "<<ak+1<<"\n"; bs[ak+2]=bs[ak+1]&bs[ak]; ak+=2; } else{ // cout<<"1 "<<ak<<" "<<i<<"\n"; bs[ak+1]=bs[ak]|bs[i]; ak++; } } } for(ll i=1;i<100007;i++)bs[i].reset(); for(ll i=1;i<=n;i++){ for(ll j=i;j<=n;j+=i)bs[i][j]=1; } cout<<ak-n<<"\n"; ak=n+1; if(bs[0][1]){ cout<<"1 1 1\n"; bs[ak]=bs[1]; } else{ cout<<"3 1\n"; } for(ll i=2;i<=n;i++){ if(bs[ak][i]!=bs[0][i]){ if(bs[ak][i]){ cout<<"3 "<<i<<"\n"; bs[ak+1]=~bs[i]; cout<<"2 "<<ak<<" "<<ak+1<<"\n"; bs[ak+2]=bs[ak+1]&bs[ak]; ak+=2; } else{ cout<<"1 "<<ak<<" "<<i<<"\n"; bs[ak+1]=bs[ak]|bs[i]; ak++; } } } return 0; } |