| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1294778 | Ice_man | Ancient Machine (JOI21_ancient_machine) | C++20 | 0 ms | 0 KiB |
#include "Anna.h"
#include <vector>
#define SZ 48
#define LOG 35
#define PB push_back
typedef long long ll;
void Anna(int N, std::vector<char> S)
{
std::vector <int> myv(N);
bool lamp = false;
for(int i = 0; i < N; i++)
if(S[i] == 'X')
{
lamp = true;
myv[i] = 1;
for(int j = i + 1; j < N; j++)
if(S[j] == 'Z')
myv[j] = 1;
for(int j = N - 1; j > 0; j--)
if(myv[j] == 1 && myv[j - 1] == 1)
myv[j - 1] = 0;
for(int j = N - 1; j > i + 1; j--)
myv[j] = myv[j - 1];
myv[i] = 1;
myv[i + 1] = 0;
break;
}
while(myv.size() % SZ != 0)
myv.PB(0);
std::vector <ll> comb(SZ + 10);
comb[0] = 1;
comb[1] = 2;
for(int i = 2; i <= SZ; i++)
comb[i] = comb[i - 1] + comb[i - 2];
for(int i = 0; i < myv.size(); i += SZ)
{
ll code = 0;
for(int j = 0; j < SZ; j++)
if(myv[i + j] == true)
code += comb[SZ - j - 1];
for(int j = 0; j < LOG; j++)
if(code & (1LL << j))
Send(1);
else
Send(0);
}
}
#include "Anna.h"
#include <vector>
#define SZ 48
#define LOG 35
#define PB push_back
typedef long long ll;
void Anna(int N, std::vector<char> S)
{
std::vector <int> myv(N);
bool lamp = false;
for(int i = 0; i < N; i++)
if(S[i] == 'X')
{
lamp = true;
myv[i] = 1;
for(int j = i + 1; j < N; j++)
if(S[j] == 'Z')
myv[j] = 1;
for(int j = N - 1; j > 0; j--)
if(myv[j] == 1 && myv[j - 1] == 1)
myv[j - 1] = 0;
for(int j = N - 1; j > i + 1; j--)
myv[j] = myv[j - 1];
myv[i] = 1;
myv[i + 1] = 0;
break;
}
while(myv.size() % SZ != 0)
myv.PB(0);
std::vector <ll> comb(SZ + 10);
comb[0] = 1;
comb[1] = 2;
for(int i = 2; i <= SZ; i++)
comb[i] = comb[i - 1] + comb[i - 2];
for(int i = 0; i < myv.size(); i += SZ)
{
ll code = 0;
for(int j = 0; j < SZ; j++)
if(myv[i + j] == true)
code += comb[SZ - j - 1];
for(int j = 0; j < LOG; j++)
if(code & (1LL << j))
Send(1);
else
Send(0);
}
}
