# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1101135 | rainboy | Hieroglyphs (IOI24_hieroglyphs) | C++17 | 80 ms | 26968 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.
/* upsolved after discussing with Benq */
#include "hieroglyphs.h"
#include <cstdlib>
#include <cstring>
#include <vector>
using namespace std;
typedef vector<int> vi;
const int N = 100000, M = 100000, A = 200000, INF = 0x3f3f3f3f;
int min(int a, int b) { return a < b ? a : b; }
int aa_[N], bb_[M], iia[N], jja[N], iib[M], jjb[M], iic[N], jjc[N], iic_[N], jjc_[N], nxt[N], n, m, n_, m_, l;
int *eia[A + 1], eoa[A + 1], *ejb[A + 1], eob[A + 1];
int hh[A + 1];
void append(int **ei, int *eo, int a, int i) {
int o = eo[a]++;
if (o >= 2 && (o & o - 1) == 0)
ei[a] = (int *) realloc(ei[a], o * 2 * sizeof *ei[a]);
ei[a][o] = i;
}
int prev(int **ei, int *eo, int a, int i) {
int lower = -1, upper = eo[a];
while (upper - lower > 1) {
int o = (lower + upper) / 2;
if (ei[a][o] < i)
Compilation message (stderr)
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |