# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1262283 | inkvizytor | Broken Device (JOI17_broken_device) | C++20 | 19 ms | 1344 KiB |
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
void ustaw(vector<int> v, int i) {
Set(i, v[0]), Set(i+1, v[1]), Set(i+2, v[2]);
}
void Anna(int N, long long X, int K, int P[] ){
int s = 0;
vector<int> a (N+2, 0);
for (int i = 0; i < K; i++) {
a[P[i]]=1;
}
for (int i = 0; i < N; i+=3) {
int l = a[i]+a[i+1]+a[i+2];
if (l >= 2) {
ustaw({0, 0, 0}, i);
}
else if (a[i]) {
if (X&(1<<s)) {
ustaw({0, 1, 0}, i);
s++;
}
else {
if (X&(1<<(s+1))) {
ustaw({0, 1, 1}, i);
s+=2;
}
else {
ustaw({0, 0, 1}, i);
s+=2;
}
}
}
else if (a[i+1]) {
if (X&(1<<s)) {
ustaw({1, 0, 1}, i);
s++;
}
else {
ustaw({1, 0, 0}, i);
s++;
}
}
else if (a[i+2]) {
if (X&(1<<s)) {
ustaw({0, 1, 0}, i);
s++;
}
else {
ustaw({1, 0, 0}, i);
s++;
}
}
else {
if (X&(1<<s)) {
if (X&(1<<(s+1))) {
ustaw({1, 1, 1}, i);
s+=2;
}
else {
ustaw({1, 1, 0}, i);
s+=2;
}
}
else {
if (X&(1<<(s+1))) {
ustaw({0, 1, 1}, i);
s+=2;
}
else {
ustaw({0, 0, 1}, i);
s+=2;
}
}
}
}
}
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
long long Bruno( int N, int A[] ){
ll x = 0, s = 0;
for (int i = 0; i < N; i+=3) {
if (A[i] == 0) {
if (A[i+1]==0) {
if (A[i+2]==1) {
s+=2;
}
}
else {
if (A[i+2]==0) {
x+=(1<<s);
s++;
}
else {
x +=(1<<(s+1));
s+=2;
}
}
}
else {
if (A[i+1]==0) {
if (A[i+2]==0) {
s++;
}
else {
x+=(1<<s);
s++;
}
}
else {
if (A[i+2]==0) {
x+=(1<<s);
s+=2;
}
else {
x+=(1<<s)+(1<<(s+1));
s+=2;
}
}
}
}
return x;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |