| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 1228771 | PenguinsAreCute | Broken Device (JOI17_broken_device) | C++17 | 26 ms | 1492 KiB | 
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
const int B = 4;
void Anna( int N, long long X, int K, int P[] ) {
	int perm[N];
	iota(perm,perm+N,0);
	mt19937 rng(42069);
	shuffle(perm,perm+N,rng);
	int inv[N];
	for(int i=0;i<N;i++)
		inv[perm[i]] = i;
	int Q[K];
	for(int i=0;i<K;i++)
		Q[i] = inv[P[i]];
	sort(Q,Q+K);
	int cnt = 0;
	for(int i=0;i<=K;i++) {
		int l = (i ? Q[i-1] + 1 : 0);
		int r = (i < K ? Q[i] - 1 : N - 1);
		if(l > r)
			continue;
		while(l + B-1 <= r) {
			Set(perm[l], 1);
			for(int j=1;j<B;j++)
				Set(perm[l + j], !!(X & (1LL << (cnt++))));
			l += B;
		}
		while(l <= r)
			Set(perm[l++], 0);
	}
	for(int i=0;i<K;i++)
		Set(P[i], 0);
}
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;
const int B = 4;
long long Bruno( int N, int A[] ){
	int perm[N];
	iota(perm,perm+N,0);
	mt19937 rng(42069);
	shuffle(perm,perm+N,rng);
	long long X = 0;
	int cnt = 0;
	for(int i=0;i<N;) {
		if(A[perm[i]]) {
			for(int j=1;j<B;j++)
				X |= A[perm[i+j]] * (1LL << (cnt++));
			i += B;
		} else
			i++;
	}
	return X;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
