답안 #990640

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
990640 2024-05-30T21:11:34 Z Saul0906 Broken Device (JOI17_broken_device) C++14
85 / 100
31 ms 2716 KB
#include "Annalib.h"
#include <bits/stdc++.h>
#define rep(a,b,c) for(int a=b; a<c; a++)
#define repa(a,b) for(auto a: b)
#define repr(a,b,c) for(int a=b-1; a>c-1; a--)
 
using namespace std;


void Anna( int N, long long X, int K, int P[] ){
	mt19937_64 rnd(123456789);
	bool b[150]{};
	int pp[150];
	rep(i,0,150) pp[i]=i;
	shuffle(pp,pp+150,rnd);
	rep(i,0,K) b[P[i]]=1;
	int d[38]{}, p=0;
	while(X){
		d[p++]=X%3;
		X/=3;
	}
	p=0;
	for( int i = 0; i < N; i+=2 ){
		if(!b[pp[i]] && !b[pp[i+1]] && p<38){
			if(d[p]==0) Set(pp[i],1), Set(pp[i+1],1); //1,1 = 0
			if(d[p]==1) Set(pp[i],1), Set(pp[i+1],0); //1,0 = 1
			if(d[p]==2) Set(pp[i],0), Set(pp[i+1],1); //0,1 = 2
			p++;
		}else Set(pp[i],0), Set(pp[i+1],0);
	}
}
#include "Brunolib.h"
#define rep(a,b,c) for(int a=b; a<c; a++)
#define ll long long
#include <bits/stdc++.h>
 
using namespace std;

ll fpow(ll x, ll y){
	if(!y) return 1;
	if(y&1) return fpow(x,y-1)*x;
	ll z=fpow(x,y/2);
	return z*z;
}
 
long long Bruno( int N, int A[] ){
	mt19937_64 rnd(123456789);
	ll d[38]{}, p=0;
	ll X=0;
	int pp[150];
	rep(i,0,150) pp[i]=i;
	shuffle(pp,pp+150,rnd);
	rep(i,0,N){
		if(A[pp[i]]==0 && A[pp[i+1]]==0){
			i++;
			continue;
		}
		if(A[pp[i]]==1 && A[pp[i+1]]==1) d[p++]=0;
		if(A[pp[i]]==1 && A[pp[i+1]]==0) d[p++]=1;
		if(A[pp[i]]==0 && A[pp[i+1]]==1) d[p++]=2;
		i++;
		if(p==38) break;
	}
	rep(i,0,38){
		X+=d[i]*fpow(3,i);
	}
	return X;
}
# 결과 실행 시간 메모리 Grader output
1 Partially correct 25 ms 2304 KB Output is partially correct - L* = 38
2 Partially correct 25 ms 2384 KB Output is partially correct - L* = 38
3 Partially correct 27 ms 2464 KB Output is partially correct - L* = 38
4 Partially correct 24 ms 2400 KB Output is partially correct - L* = 38
5 Partially correct 25 ms 2388 KB Output is partially correct - L* = 38
6 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
7 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
8 Partially correct 24 ms 2368 KB Output is partially correct - L* = 38
9 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
10 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
11 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
12 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
13 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
14 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
15 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
16 Partially correct 24 ms 2404 KB Output is partially correct - L* = 38
17 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
18 Partially correct 24 ms 2396 KB Output is partially correct - L* = 37
19 Partially correct 31 ms 2392 KB Output is partially correct - L* = 38
20 Partially correct 24 ms 2396 KB Output is partially correct - L* = 37
21 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
22 Partially correct 24 ms 2488 KB Output is partially correct - L* = 38
23 Partially correct 24 ms 2404 KB Output is partially correct - L* = 38
24 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
25 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
26 Partially correct 25 ms 2404 KB Output is partially correct - L* = 38
27 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
28 Partially correct 26 ms 2396 KB Output is partially correct - L* = 37
29 Partially correct 24 ms 2400 KB Output is partially correct - L* = 38
30 Partially correct 24 ms 2528 KB Output is partially correct - L* = 38
31 Partially correct 24 ms 2716 KB Output is partially correct - L* = 38
32 Partially correct 24 ms 2392 KB Output is partially correct - L* = 38
33 Partially correct 24 ms 2548 KB Output is partially correct - L* = 38
34 Partially correct 24 ms 2488 KB Output is partially correct - L* = 38
35 Partially correct 26 ms 2404 KB Output is partially correct - L* = 38
36 Partially correct 24 ms 2524 KB Output is partially correct - L* = 38
37 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
38 Partially correct 28 ms 2492 KB Output is partially correct - L* = 38
39 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38
40 Partially correct 24 ms 2396 KB Output is partially correct - L* = 38