# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
900617 | oviyan_gandhi | Snake Escaping (JOI18_snake_escaping) | C++17 | 1255 ms | 43384 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
using namespace std;
#define MAXN 20
int n, q;
string s;
int prv[1 << MAXN], dp[1 << MAXN], sub1[1 << MAXN];
int flip(int x){
return ~x ^ ~((1 << n) - 1);
}
void sos(bool one){
memset(dp, 0, sizeof(dp));
for (int mask = 0; mask < (1 << n); mask++){
dp[mask] = s[one ? mask : flip(mask)]-'0';
if (mask & 1)
dp[mask] += s[one ? (mask ^ 1) : flip(mask ^ 1)]-'0';
prv[mask] = dp[mask];
}
for (int i = 1; i <= n; i++){
for (int mask = 0; mask < (1 << n); mask++){
dp[mask] = prv[mask];
if (mask & (1 << i))
dp[mask] += prv[mask ^ (1 << i)];
}
for (int mask = 0; mask < (1 << n); mask++)
prv[mask] = dp[mask];
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |