Submission #2961

#TimeUsernameProblemLanguageResultExecution timeMemory
2961gs13068Languages (IOI10_languages)C++98
61 / 100
1497 ms9844 KiB
#include"grader.h"
#include"lang.h"

int langn[56];
int lang[56][65536];
int a[65536];
int b[100];
int c[100];

void excerpt(int *str)
{
  double max=987654321,maxlang=0;
  double now;
  int i,j,n,sum;
  for(i=0;i<65536;i++)a[i]=0;
  for(i=0;i<100;i++)a[str[i]]++;
  j=0;
  for(i=0;i<65536;i++)if(a[i])
  {
    b[j]=i;
    c[j]=a[i];
    j++;
  }
  for(i=0;i<56;i++)
  {
    if(langn[i]==0)continue;
    sum=langn[i];
    now=0;
    for(j=0;j<100;j++)now+=(1.*lang[i][b[j]]/sum-c[j]/100.)*(1.*lang[i][b[j]]/sum-c[j]/100.);
    if(now<max)
    {
      max=now;
      maxlang=i;
    }
  }
  n=language(maxlang);
  langn[n]+=100;
  for(i=0;i<100;i++)lang[n][b[i]]+=c[i];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...