Submission #825831

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
8258312023-08-15 08:39:50KoyoteSelling RNA Strands (JOI16_selling_rna)C++14
100 / 100
232 ms144956 KiB
#include <bits/stdc++.h>
using namespace std;
template<class T> bool ckmin(T &u, const T &v) { return u > v ? (u = v, true) : false; }
template<class T> bool ckmax(T &u, const T &v) { return u < v ? (u = v, true) : false; }
int conv(char c) {
if (c == 'A') return 0;
if (c == 'U') return 1;
if (c == 'G') return 2;
return 3;
}
struct prefix_trie {
typedef array<int, 4> node;
vector<node> tree;
vector<pair<int, int>> range;
prefix_trie() : tree(1, node{}), range(1, {int(1e9), -1}) {}
void insert(const string &s, int idx) {
int cur = 0;
for (int i = 0; i < (int)s.size(); i++) {
int c = conv(s[i]);
if (!tree[cur][c]) {
tree[cur][c] = (int)tree.size();
tree.push_back(node{});
range.push_back({int(1e9), -1});
}
cur = tree[cur][c];
ckmin(range[cur].first, idx);
ckmax(range[cur].second, idx);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...