답안 #412066

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
412066 2021-05-26T13:12:45 Z alishahali1382 Broken Device (JOI17_broken_device) C++14
100 / 100
71 ms 2408 KB
#include "Annalib.h"
#include <bits/stdc++.h>
#pragma GCC optimize ("O2,unroll-loops")
//#pragma GCC optimize("no-stack-protector,fast-math")
//#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")

using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<pii, int> piii;
typedef pair<ll, ll> pll;
#define debug(x) cerr<<#x<<'='<<(x)<<endl;
#define debugp(x) cerr<<#x<<"= {"<<(x.first)<<", "<<(x.second)<<"}"<<endl;
#define debug2(x, y) cerr<<"{"<<#x<<", "<<#y<<"} = {"<<(x)<<", "<<(y)<<"}"<<endl;
#define debugv(v) {cerr<<#v<<" : ";for (auto x:v) cerr<<x<<' ';cerr<<endl;}
#define all(x) x.begin(), x.end()
#define pb push_back
#define kill(x) return cout<<x<<'\n', 0;

const int inf=1000000010;
const ll INF=1000000000000001000LL;
const int mod=1000000007;
const int MAXN=210, LOG=60;

int bad[MAXN], shit[MAXN];
int P[MAXN];

void Anna(int n, ll x, int k, int A[]){
	iota(P, P+n, 0);
	for (int i=1; i<n; i++) swap(P[i], P[4*i/5]);
	for (int i=0; i<n; i++) bad[i]=0;
	for (int i=0; i<k; i++) bad[P[A[i]]]=1;//, shit[A[i]]=1;

	string S;
	for (int i=0; i<n; i+=2){
		ll y=x%3;
		// debug(y)
		if (y==0 && !bad[i+1]){
			S+="01";
			x/=3;
			continue ;
		}
		if (y==1 && !bad[i]){
			S+="10";
			x/=3;
			continue ;
		}
		if (y==2 && !bad[i] && !bad[i+1]){
			S+="11";
			x/=3;
			continue ;
		}
		S+="00";
	}
	for (int i=0; i<n; i++) Set(i, S[P[i]]-'0');
	// debug(S)

	return ;
}
#include "Brunolib.h"
#include <bits/stdc++.h>
#pragma GCC optimize ("O2,unroll-loops")
//#pragma GCC optimize("no-stack-protector,fast-math")

using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<pii, int> piii;
typedef pair<ll, ll> pll;
#define debug(x) cerr<<#x<<'='<<(x)<<endl;
#define debugp(x) cerr<<#x<<"= {"<<(x.first)<<", "<<(x.second)<<"}"<<endl;
#define debug2(x, y) cerr<<"{"<<#x<<", "<<#y<<"} = {"<<(x)<<", "<<(y)<<"}"<<endl;
#define debugv(v) {cerr<<#v<<" : ";for (auto x:v) cerr<<x<<' ';cerr<<endl;}
#define all(x) x.begin(), x.end()
#define pb push_back
#define kill(x) return cout<<x<<'\n', 0;

const int inf=1000000010;
const ll INF=1000000000000001000LL;
const int mod=1000000007;
const int MAXN=210, LOG=60;

int PP[MAXN], QQ[MAXN];
int A[MAXN];

ll Bruno(int n, int B[]){
	iota(PP, PP+n, 0);
	for (int i=1; i<n; i++) swap(PP[i], PP[(4*i)/5]);
	for (int i=0; i<n; i++) QQ[PP[i]]=i;
	string T="";
	for (int i=0; i<n; i++) A[i]=B[QQ[i]], T+=char('0'+A[i]);
	// debug(T)

	vector<int> vec;
	int pos=0;
	for (int i=0; i<n; i+=2){
		string S="";
		S+=char('0'+A[i]);
		S+=char('0'+A[i+1]);
		if (S=="00") continue ;
		if (S=="01") vec.pb(0);
		if (S=="10") vec.pb(1);
		if (S=="11") vec.pb(2);
	}
	reverse(all(vec));
	ll res=0;
	for (int x:vec) res=res*3ll+x;
	
	return res;
}

Compilation message

Bruno.cpp: In function 'll Bruno(int, int*)':
Bruno.cpp:37:6: warning: unused variable 'pos' [-Wunused-variable]
   37 |  int pos=0;
      |      ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 54 ms 2196 KB Output is correct - L* = 40
2 Correct 62 ms 2292 KB Output is correct - L* = 40
3 Correct 53 ms 2252 KB Output is correct - L* = 40
4 Correct 48 ms 2316 KB Output is correct - L* = 40
5 Correct 58 ms 2312 KB Output is correct - L* = 40
6 Correct 49 ms 2356 KB Output is correct - L* = 40
7 Correct 50 ms 2340 KB Output is correct - L* = 40
8 Correct 71 ms 2152 KB Output is correct - L* = 40
9 Correct 50 ms 2264 KB Output is correct - L* = 40
10 Correct 48 ms 2204 KB Output is correct - L* = 40
11 Correct 60 ms 2296 KB Output is correct - L* = 40
12 Correct 49 ms 2228 KB Output is correct - L* = 40
13 Correct 49 ms 2228 KB Output is correct - L* = 40
14 Correct 61 ms 2196 KB Output is correct - L* = 40
15 Correct 53 ms 2288 KB Output is correct - L* = 40
16 Correct 65 ms 2248 KB Output is correct - L* = 40
17 Correct 49 ms 2168 KB Output is correct - L* = 40
18 Correct 49 ms 2328 KB Output is correct - L* = 40
19 Correct 55 ms 2320 KB Output is correct - L* = 40
20 Correct 50 ms 2256 KB Output is correct - L* = 40
21 Correct 48 ms 2272 KB Output is correct - L* = 40
22 Correct 48 ms 2312 KB Output is correct - L* = 40
23 Correct 50 ms 2308 KB Output is correct - L* = 40
24 Correct 48 ms 2304 KB Output is correct - L* = 40
25 Correct 48 ms 2236 KB Output is correct - L* = 40
26 Correct 61 ms 2248 KB Output is correct - L* = 40
27 Correct 54 ms 2332 KB Output is correct - L* = 40
28 Correct 51 ms 2260 KB Output is correct - L* = 40
29 Correct 66 ms 2224 KB Output is correct - L* = 40
30 Correct 49 ms 2260 KB Output is correct - L* = 40
31 Correct 49 ms 2408 KB Output is correct - L* = 40
32 Correct 60 ms 2328 KB Output is correct - L* = 40
33 Correct 51 ms 2128 KB Output is correct - L* = 40
34 Correct 57 ms 2348 KB Output is correct - L* = 40
35 Correct 51 ms 2196 KB Output is correct - L* = 40
36 Correct 47 ms 2404 KB Output is correct - L* = 40
37 Correct 54 ms 2284 KB Output is correct - L* = 40
38 Correct 48 ms 2256 KB Output is correct - L* = 40
39 Correct 49 ms 2260 KB Output is correct - L* = 40
40 Correct 49 ms 2248 KB Output is correct - L* = 40