Submission #15790

# Submission time Handle Problem Language Result Execution time Memory
15790 2015-07-26T14:00:43 Z gs13068 Languages (IOI10_languages) C++
100 / 100
9208 ms 232416 KB
#include "grader.h"
#include "lang.h"
#include <map>
#include <vector>

const int len = 6;

std::map<long long,std::vector<char> > M[len];
int t[56];

void excerpt(int *E)
{
	std::vector<char> a;
	long long hs;
    int i,j,k,r;
    for(j=0;j<56;j++)t[j]=0.0;
    for(i=0;i<100;i++)
    {
        hs=0;
        for(j=0;j<len&&i+j<100;j++)
		{
			hs=hs*77777LL+E[i+j];
			if(M[j].find(hs)!=M[j].end())
			{
				a=M[j][hs];
				for(k=0;k<56;k++)t[k]+=a[k];
			}
		}
    }
	r=0;
    for(i=0;i<56;i++)if(t[i]>t[r])r=i;
    r=language(r);
    a.clear();
    a.resize(56,0);
    for(i=0;i<100;i++)
    {
        hs=0;
        for(j=0;j<len&&i+j<100;j++)
		{
			hs=hs*77777LL+E[i+j];
			if(M[j].find(hs)==M[j].end())M[j][hs]=a;
            M[j][hs][r]=1;
		}
    }
}
# Verdict Execution time Memory Grader output
1 Correct 8563 ms 232416 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9208 ms 232360 KB Output is correct - 91.13%