답안 #7504

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
7504 2014-08-09T12:40:20 Z gs13068 Languages (IOI10_languages) C++
0 / 100
10000 ms 195100 KB
#include <map>
#include <math.h>
#include <string.h>
#include "grader.h"
#include "lang.h"
 
typedef std::map<long long,int> M;
M pre[56];
M num;
int pre2[65536][56];
int num2[65536];
double now[56];
int q;
 
void excerpt(int *E)
{
    int c,r,mxnum=0,i,j;
    long long p[98];
    double z,mx;
    ++q;
    memset(now,0,sizeof(now));
    for(i=0;i<98;++i)
    {
        p[i]=E[i]+E[i+1]*65536LL+E[i+2]*4294967296LL;
        c=num[p[i]];
        if(c!=0)
        {
            for(j=0;j<56;++j)
            {
                z=cbrt(pre[j][p[i]]);
                now[j]+=z*z/c;
            }
        }
    }
    if(q<=7000)
    {
        for(i=0;i<100;++i)
        {
            if(num2[E[i]]!=0)
            {
                for(j=0;j<56;++j)
                {
                    z=cbrt(pre2[E[i]][j]);
                    now[j]+=z*z/num2[E[i]];
                }
            }
        }
    }
    mx=now[0];
    for(i=1;i<56;++i)
    {
        if(now[i]>mx)
        {
            mx=now[i];
            mxnum=i;
        }
    }
    r=language(mxnum);
    for(i=0;i<98;++i)
    {
        ++num[p[i]];
        ++pre[r][p[i]];
    }
    if(q<7000)
    {
        for(i=0;i<100;++i)
        {
            ++num2[E[i]];
            ++pre2[E[i]][r];
        }
    }
}
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 10062 ms 192672 KB Time limit exceeded
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 10099 ms 195100 KB Time limit exceeded