# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
677406 |
2023-01-03T08:03:30 Z |
jhwest2 |
None (JOI15_memory) |
C++17 |
|
6000 ms |
419216 KB |
#include "Memory_lib.h"
#include <bits/stdc++.h>
using namespace std;
namespace {
const int N = 100;
const int B = 1 << 22;
bool init = false;
int sz = 0;
array<int, 5> a[B];
map<array<int, 5>, int> mp;
void initialize(int n) {
for (int rev = 0; rev <= 1; rev++)
for (int s = 1; s <= n; s++)
for (int t = 1; t <= n; t++)
for (int x = 0; x <= n / 2; x++)
for (int y = 0; y <= n / 2; y++)
if (((!rev && s <= t) || (rev && s >= t)) && (x + y) % 2 == abs(t - s) % 2 && x + y <= abs(t - s))
a[sz++] = {rev, s, t, x, y};
for (int i = 0; i < sz; i++)
mp[a[i]] = i;
}
}
int Memory(int n, int m) {
if (!init) {
init = true;
initialize(n);
}
if (m >= sz)
return -2;
auto [rev, s, t, x, y] = a[m];
char c = Get(t);
if (!rev) {
if (s == t && (c == '>' || c == ']')) {
if (s != n) {
s = s + 1;
t = t + 1;
return mp[{rev, s, t, x, y}];
}
else {
rev = 1;
s = n;
t = n;
return mp[{rev, s, t, x, y}];
}
}
else {
if (c == '[')
++x;
if (c == ']')
--x;
if (c == '<')
++y;
if (c == '>')
--y;
if (x < 0 || y < 0 || x > n / 2 || y > n / 2)
return -2;
else {
if (x != 0 || y != 0) {
t = t + 1;
if (t == n + 1)
return -2;
else
return mp[{rev, s, t, x, y}];
}
else {
if (s != n) {
s = s + 1;
t = s;
x = 0;
y = 0;
return mp[{rev, s, t, x, y}];
}
else {
return mp[{1, n, n, 0, 0}];
}
}
}
}
}
else {
if (s == t && (c == '<' || c == '[')) {
if (s != 1) {
s = s - 1;
t = t - 1;
return mp[{rev, s, t, x, y}];
}
else
return -1;
}
else {
if (c == ']')
++x;
if (c == '[')
--x;
if (c == '>')
++y;
if (c == '<')
--y;
if (x < 0 || y < 0 || x > n / 2 || y > n / 2)
return -2;
else {
if (x != 0 || y != 0) {
t = t - 1;
if (t == 0)
return -2;
else
return mp[{rev, s, t, x, y}];
}
else {
if (s != 1) {
s = s - 1;
t = s;
x = 0;
y = 0;
return mp[{rev, s, t, x, y}];
}
else
return -1;
}
}
}
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2039 ms |
284148 KB |
Output is correct |
2 |
Correct |
2070 ms |
284108 KB |
Output is correct |
3 |
Correct |
2057 ms |
284172 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2039 ms |
284148 KB |
Output is correct |
2 |
Correct |
2070 ms |
284108 KB |
Output is correct |
3 |
Correct |
2057 ms |
284172 KB |
Output is correct |
4 |
Correct |
2084 ms |
284284 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2039 ms |
284148 KB |
Output is correct |
2 |
Correct |
2070 ms |
284108 KB |
Output is correct |
3 |
Correct |
2057 ms |
284172 KB |
Output is correct |
4 |
Correct |
2084 ms |
284284 KB |
Output is correct |
5 |
Correct |
2059 ms |
285640 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2039 ms |
284148 KB |
Output is correct |
2 |
Correct |
2070 ms |
284108 KB |
Output is correct |
3 |
Correct |
2057 ms |
284172 KB |
Output is correct |
4 |
Correct |
2084 ms |
284284 KB |
Output is correct |
5 |
Correct |
2059 ms |
285640 KB |
Output is correct |
6 |
Correct |
2154 ms |
287124 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Execution timed out |
6102 ms |
419216 KB |
Time limit exceeded |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2039 ms |
284148 KB |
Output is correct |
2 |
Correct |
2070 ms |
284108 KB |
Output is correct |
3 |
Correct |
2057 ms |
284172 KB |
Output is correct |
4 |
Correct |
2084 ms |
284284 KB |
Output is correct |
5 |
Correct |
2059 ms |
285640 KB |
Output is correct |
6 |
Correct |
2154 ms |
287124 KB |
Output is correct |
7 |
Execution timed out |
6102 ms |
419216 KB |
Time limit exceeded |
8 |
Halted |
0 ms |
0 KB |
- |