Submission #73074

#TimeUsernameProblemLanguageResultExecution timeMemory
73074tamtamLanguages (IOI10_languages)C++14
0 / 100
6 ms768 KiB
#include "grader.h" //#include "languages.h" #include <bits/stdc++.h> #include <unordered_map> #define F first #define S second typedef long long ll; using namespace std; unordered_map <string ,int> LL; unordered_map <string ,int> val; double lang[100]={0}; int E[1010]; int ans; void check(int st,int en){ string s=""; for (int i=st;i<en;i++){ s+=(char)E[i]; } int v=val[s]; v=max(v,1); double res=1.0/(double)v; if (LL[s]==0)return ; lang[LL[s]-1]+=res; } void add(int st,int en){ string s=""; for (int i=st;i<en;i++){ s+=(char)E[i]; } if (LL[s]!=ans)val[s]++; LL[s]=ans; } void excerpt(int EE[]){ for (int i=0;i<100;i++)E[i]=EE[i]; int f[100010]={0}; pair<int,int> mx={0,0}; for (int i=0;i<100;i++){ f[E[i]]++; mx=max(mx,{f[E[i]],E[i]}); } int last=0; for (int i=0;i<100;i++){ if (E[i]==mx.S){ check(last,i); last=i+1; } } check(last,100); pair<double,int> L; for (int i=0;i<60;i++){ L=max(L,{lang[i],i}); } ans=language(L.S); last=0; for (int i=0;i<100;i++){ if (E[i]==mx.S){ add(last,i); last=i+1; } } add(last,100); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...