제출 #1186179

#제출 시각아이디문제언어결과실행 시간메모리
1186179yehudalesterCoreputer (IOI23_coreputer)C++20
0 / 100
0 ms396 KiB
#include "coreputer.h"
#include<vector>
#include<numeric>
#include<random>
using namespace std;
using ll=int;
using vll=vector<ll>;
vll to_vector(ll x, ll n){
	vll vec;
	while(n--){
		vec.push_back(x%2);
		x/=2;
	}
	return vec;
}
vll vect(ll x){
	vll res;
	for(ll i=0;i<32;i++){
		if(x&(1<<i)){
			res.push_back(i);
		}
	}
}
std::vector<int> malfunctioning_cores(int N) {
	vll vec((1<<N)-1);
	iota(vec.begin(),vec.end(),1);
	mt19937 rng(time(0));
	while(vec.size()!=1){
		ll x=uniform_int_distribution<ll>(1,(1<<N)-1)(rng);
		vll t;
		ll res=run_diagnostic(vect(x));
		for(ll y:vec){
			if(res==1){
				if(__builtin_popcount(y&x)>__builtin_popcount(y&(!x))){
					t.push_back(y);
				}
			}
			if(res==0){
				if(__builtin_popcount(y&x)==__builtin_popcount(y&(!x))){
					t.push_back(y);
				}
			}
			if(res==-1){
				if(__builtin_popcount(y&x)<__builtin_popcount(y&(!x))){
					t.push_back(y);
				}
			}
		}
		vec=t;
	}
	return to_vector(vec[0],N);
}

컴파일 시 표준 에러 (stderr) 메시지

coreputer.cpp: In function 'vll vect(ll)':
coreputer.cpp:23:1: warning: no return statement in function returning non-void [-Wreturn-type]
   23 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...