# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1270709 | tvgk | Broken Device (JOI17_broken_device) | C++20 | 17 ms | 1344 KiB |
#include "Annalib.h"
#include<bits/stdc++.h>
using namespace std;
#define task "a"
#define se second
#define fi first
#define ll long long
#define ii pair<ll, ll>
const long mxN = 2e5 + 7;
void Input(int i, string s)
{
for (int j = 0; j <= 2; j++)
Set(i + j, s[j] - '0');
}
int er[200];
void Anna(int n, long long X, int K, int P[])
{
vector<int> bit;
for (int i = 1; i <= n; i++)
{
bit.push_back(X & 1);
X >>= 1;
}
for (int i = 0; i < K; i++)
er[P[i]] = 1;
int ctr = 0;
for (int i = 0; i < n; i += 3)
{
int cnt = er[i] + er[i + 1] + er[i + 2];
if (cnt >= 2)
{
Input(i, "000");
continue;
}
if (!cnt)
{
if (!bit[ctr] && bit[ctr + 1])
Input(i, "010");
else if (bit[ctr] && bit[ctr + 1])
Input(i, "111");
else if (!bit[ctr] && !bit[ctr + 1])
Input(i, "110");
else
Input(i, "101");
ctr += 2;
}
else
{
if (bit[ctr])
{
if (er[i])
Input(i, "011");
else
Input(i, "100");
ctr++;
}
else
{
if (!er[i + 2])
{
Input(i, "001");
ctr++;
}
else
{
if (bit[ctr + 1])
Input(i, "010");
else
Input(i, "110");
ctr += 2;
}
}
}
}
}
#include "Brunolib.h"
#include<bits/stdc++.h>
using namespace std;
#define task "a"
#define se second
#define fi first
#define ll long long
#define ii pair<ll, ll>
const long mxN = 2e5 + 7;
string pre[10] = {"", "0", "01", "1", "1", "10", "00", "11"};
long long Bruno(int n, int A[])
{
string s;
for (int i = 0; i < n; i += 3)
{
int tmp = 0;
for (int j = 0; j <= 2; j++)
tmp = tmp * 2 + A[i + j];
s += pre[tmp];
}
ll ans = 0;
reverse(s.begin(), s.end());
for (char i : s)
ans = ans * 2 + (i - '0');
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |