제출 #434050

#제출 시각아이디문제언어결과실행 시간메모리
434050KoDLanguages (IOI10_languages)C++17
60 / 100
389 ms2756 KiB
#include <bits/stdc++.h> #include "grader.h" #include "lang.h" #define SZ 100 int has[56][65536]; template <class T> using Vec = std::vector<T>; void excerpt(int *E) { std::map<int, int> map; for (int i = 0; i < SZ; ++i) { map[E[i]] += 1; } Vec<std::pair<int, int>> vec; for (const auto [x, y] : map) { vec.emplace_back(y, x); } std::sort(vec.rbegin(), vec.rend()); Vec<int> cand(56); std::iota(cand.begin(), cand.end(), 0); int ret = 0; for (const auto [y, x] : vec) { Vec<int> next; for (const auto t : cand) { if (has[t][x]) { next.push_back(t); } } if (next.empty()) { break; } cand = std::move(next); } int max = -1; for (const auto t : cand) { int cnt = 0; for (const auto [x, y] : map) { cnt += has[t][x]; } if (max < cnt) { max = cnt; ret = t; } } const int type = language(ret); for (int i = 0; i < SZ; ++i) { has[type][E[i]] += 1; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...