Submission #60895

#TimeUsernameProblemLanguageResultExecution timeMemory
60895realityLanguages (IOI10_languages)C++17
77 / 100
6162 ms7348 KiB
#include "grader.h" #include "lang.h" #include "bits/stdc++.h" using namespace std; #define fi first #define se second #define ll long long #define dbg(v) cerr<<#v<<" = "<<v<<'\n' #define vi vector<int> #define vl vector <ll> #define pii pair<int,int> #define mp make_pair #define db long double #define pb push_back #define all(s) s.begin(),s.end() template < class T > T smin(T &a,T b) {if (a > b) a = b;return a;} template < class T > T smax(T &a,T b) {if (a < b) a = b;return a;} #define U unsigned ll #define SZ 100 const int K = 3; const db c = 0.6; int was[1111111]; map < U , int > T[56]; db f(auto x) { return pow(10,x); } void excerpt(int *E) { int n = SZ; map < U , int > M; for (int i = 0;i < n;++i) { U cnt = 1; for (int j = i;j < n && j < i + K;++j) if (!('0' <= E[j] && E[j] <= '9') && !(E[j] == '-' || E[j] == '.' || E[j] == '(' || E[j] == ')' || E[j] == ' ' || E[j] == ',' || E[j] == '\"')) { cnt *= E[j]; ++M[cnt]; } else { break; } } vector < pair < int , U > > ss; for (auto it : M) ss.pb(mp(it.se,it.fi)); sort(all(ss)); ss.resize(min((int)ss.size(),(int)(SZ * c))); vector < db > sim; for (int i = 0;i < 56;++i) { db cnt = 0.0; for (auto it : ss) if (T[i].count(it.se)) cnt += (T[i][it.se] - it.fi); else cnt -= f(it.fi); sim.pb(cnt); } int ans = max_element(all(sim)) - sim.begin(); int real_ans = language(ans); ++was[real_ans]; for (auto it : ss) smax(T[real_ans][it.se],it.fi); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...