답안 #222458

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
222458 2020-04-13T07:44:15 Z oolimry Popcount (COCI19_popcount) C++14
15 / 110
5 ms 384 KB
#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();
}
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 256 KB Accepted.
2 Correct 4 ms 256 KB Accepted.
3 Correct 5 ms 384 KB Accepted.
4 Correct 4 ms 384 KB Accepted.
5 Correct 5 ms 384 KB Accepted.
6 Correct 5 ms 256 KB Accepted.
7 Correct 5 ms 256 KB Accepted.
8 Correct 4 ms 256 KB Accepted.
9 Correct 4 ms 384 KB Accepted.
10 Correct 4 ms 256 KB Accepted.
11 Correct 5 ms 256 KB Accepted.
12 Correct 5 ms 384 KB Accepted.
13 Correct 5 ms 256 KB Accepted.
14 Correct 4 ms 256 KB Accepted.
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 256 KB Incorrect number of commands.
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 256 KB Accepted.
2 Incorrect 5 ms 256 KB Incorrect number of commands.
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 256 KB Incorrect number of commands.
2 Halted 0 ms 0 KB -