This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int N, K;
void subtask1(){
if(N%2 == 1){
printf("%d\n",(N-1)/2);
for(int i = 1;i < N;i += 2){
printf("A=((A+(((A&(1<<%d))>>%d)-(A&(1<<%d))))+(((A&(1<<%d))>>%d)-(A&(1<<%d))))\n", i, i, i, i + 1, i + 1,i + 1);
}
}
else{
printf("%d\n",N-1);
for(int i = 1;i < N;i++){
printf("A=((A+((A&(1<<%d))>>%d))-(A&(1<<%d)))\n", i, i, i);
}
}
}
void subtask2(){
vector<string> ans;
bool mode = false;
int lines = 0;
for(int i = 1;i < N;){
if(!mode){
lines++;
}
else{
lines++;
}
if(i % 4 == (N-1) % 4 && i >= 4) mode = true;
if(mode && i + 4 < N)i += 4;
else i++;
}
mode = false;
printf("%d\n",lines);
for(int i = 1;i < N;){
if(!mode){
printf("A=(((A&(1<<%d))>>%d)-(A&(1<<%d))))\n", i, i, i);
}
else{
printf("smth\n");
}
if(i % 4 == (N-1) % 4 && i >= 4) mode = true;
if(mode && i + 4 < N)i += 4;
else i++;
}
}
//A=((A+(((A&(1<<%d))>>%d)))-((A&(1<<%d))))
int main(){
cin >> N >> K;
if(N == K + 1) subtask1();
else subtask2();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |