# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
512961 | 2022-01-16T20:27:20 Z | Markomafko972 | Languages (IOI10_languages) | C++17 | 9700 ms | 34556 KB |
#include <bits/stdc++.h> #include <stdlib.h> #include <stdio.h> #include "grader.h" #include "lang.h" using namespace std; typedef long long ll; unordered_map<int, ll> m[60]; set<ll> s; vector<ll> v; void excerpt(int *E) { s.clear(); v.clear(); for (int i = 0; i < 100; i++) { E[i]--; s.insert(E[i]); if (i > 0) s.insert((ll)65535*(ll)E[i-1]+(ll)E[i]); if (i > 1) { ll u = E[i-2]; u = u * (ll)65535 + (ll)E[i-1]; u = u * (ll)65535 + (ll)E[i]; s.insert(u); } if (i > 2 && (i <= 40 || i >= 90 || i % 2 == 0 || i % 3 == 0 || i % 5 == 0 || i % 7 == 0 || i % 11 == 0)) { ll u = E[i-3]; u = u * (ll)65535 + (ll)E[i-2]; u = u * (ll)65535 + (ll)E[i-1]; u = u * (ll)65535 + (ll)E[i]; s.insert(u); } } for (set<ll> :: iterator it = s.begin(); it != s.end(); it++) v.push_back(*it); int maxim = -1, maxiv = -1, koji = 0; for (int i = 0; i < 56; i++) { int kolm = 0, kolv = 0; for (int j = 0; j < v.size(); j++) { if (m[i].find(v[j]) != m[i].end()) { if (v[j] > (ll)65535*(ll)65535*(ll)20000) kolv++; else kolm++; } //if (j > 1 && m[i][(long long)65535*(long long)65535*(long long)v[j-2]+(long long)65535*(long long)v[j-1]+(long long)v[j]]) kol++; } if (kolm+kolv > maxim+maxiv || (kolm+kolv+5 > maxim+maxiv && kolv > maxiv)) { //if (kolm+kolv >= maxim+maxiv+2 || kolv >= maxiv) { maxim = kolm; maxiv = kolv; koji = i; //} } } int pravi = language(koji); for (int i = 0; i < v.size(); i++) { m[pravi][v[i]]++; //if (i > 1) m[pravi][(long long)65535*(long long)65535*(long long)v[i-2]+(long long)65535*(long long)v[i-1]+(long long)v[i]]++; } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 9519 ms | 34484 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Partially correct | 9700 ms | 34556 KB | Output is partially correct - 89.46% |