# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1165105 | Sang | Broken Device (JOI17_broken_device) | C++20 | 30 ms | 1560 KiB |
#include "Annalib.h"
#include<bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; i++)
#define FORD(i, a, b) for (int i = (a), _b = (b); i >= _b; i--)
#define fi first
#define se second
#define pb push_back
#define ALL(a) (a).begin(), (a).end()
#define task "kbsiudthw"
typedef vector<int> vi;
typedef pair<int, int> ii;
typedef pair<int, ii> pii;
void Anna(int n, long long x, int K, int P[]){
vector<int> bit, marked(n, 0);
while (x){
bit.pb(x%3);
x /= 3;
}
reverse(ALL(bit));
FOR (i, 0, K - 1) marked[P[i]] = 1;
for (int i = 0; i < n; i += 3){
if (marked[i] + marked[i+1] + marked[i+2] > 1 || bit.empty()){
Set(i, 0); Set(i+1, 0); Set(i+2, 0);
continue;
}
int x = bit.back(); bit.pop_back();
if (x == 0){
Set(i, marked[i+2]); Set(i+1, marked[i+2]); Set(i+2, marked[i+2]^1);
}
if (x == 1){
Set(i, marked[i] ^ 1); Set(i+1, marked[i]); Set(i+2, marked[i]);
}
if (x == 2){
Set(i, marked[i+1]); Set(i+1, marked[i+1]^1); Set(i+2, marked[i+1]);
}
}
}
#include "Brunolib.h"
#include<bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; i++)
#define FORD(i, a, b) for (int i = (a), _b = (b); i >= _b; i--)
#define fi first
#define se second
#define pb push_back
#define ALL(a) (a).begin(), (a).end()
#define task "kbsiudthw"
typedef vector<int> vi;
typedef pair<int, int> ii;
typedef pair<int, ii> pii;
long long Bruno(int n, int A[]){
long long po3 = 1, ans = 0;
for (int i = 0; i < n; i += 3){
string t;
FOR (j, 0, 2) t += (A[i + j] + '0');
if (t == "000") continue;
if (t == "001" || t == "110"){
po3 *= 3;
}
if (t == "011" || t == "100"){
ans += po3;
po3 *= 3;
}
if (t == "010" || t == "101"){
ans += 2 * po3;
po3 *= 3;
}
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |