Submission #291916

#TimeUsernameProblemLanguageResultExecution timeMemory
291916tatyamLanguages (IOI10_languages)C++17
92 / 100
1841 ms249132 KiB
#include "grader.h" #include "lang.h" #include <bits/stdc++.h> using namespace std; #define SZ 100 using i64 = int64_t; using u64 = uint64_t; int prev[1100000]; #define C(n) \ auto comp ## n = [](const array<int, n>& a){ u64 ans = 0; for(int i : a){ ans <<= 16; ans |= i; } return ans; };\ unordered_map<array<int, n>, array<i64, 56>, decltype(comp ## n)> c ## n(1 << 17, comp ## n) C(1); C(2); C(3); C(4); array<i64, 56> cnt; /* random_device RD; i64 A = 0, B = 28, C = 2085, D = 319620; double highest = 70.23; /*/ const int A = 0, B = 0, C = 5158, D = 541546; // */ void excerpt(int *E) { cnt.fill(0); for(int i = 0; i <= 100 - 1; i++){ auto& c = c1[{E[i]}]; for(int i = 0; i < 56; i++) cnt[i] += c[i]; } for(int i = 0; i <= 100 - 2; i++){ auto& c = c2[{E[i], E[i + 1]}]; for(int i = 0; i < 56; i++) cnt[i] += c[i]; } for(int i = 0; i <= 100 - 3; i++){ auto& c = c3[{E[i], E[i + 1], E[i + 2]}]; for(int i = 0; i < 56; i++) cnt[i] += c[i]; } for(int i = 0; i <= 100 - 4; i++){ auto& c = c4[{E[i], E[i + 1], E[i + 2], E[i + 3]}]; for(int i = 0; i < 56; i++) cnt[i] += c[i]; } int ans = language(max_element(cnt.begin(), cnt.end()) - cnt.begin()); for(int i = 0; i <= 100 - 1; i++){ auto& c = c1[{E[i]}]; c[ans] += A; } for(int i = 0; i <= 100 - 2; i++){ auto& c = c2[{E[i], E[i + 1]}]; c[ans] += B; } for(int i = 0; i <= 100 - 3; i++){ auto& c = c3[{E[i], E[i + 1], E[i + 2]}]; c[ans] += C; } for(int i = 0; i <= 100 - 4; i++){ auto& c = c4[{E[i], E[i + 1], E[i + 2], E[i + 3]}]; c[ans] += D; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...