제출 #222458

#제출 시각아이디문제언어결과실행 시간메모리
222458oolimryPopcount (COCI19_popcount)C++14
15 / 110
5 ms384 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...