제출 #271031

#제출 시각아이디문제언어결과실행 시간메모리
271031TMJNLanguages (IOI10_languages)C++17
93 / 100
6088 ms68444 KiB
#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include <bits/stdc++.h> #include "grader.h" using namespace std; int k[56][66666]; map<pair<int,int>,vector<int>>mpv; map<pair<int,pair<int,int>>,vector<int>>mppv; map<pair<int,pair<int,pair<int,int>>>,vector<int>>mpppv; int C[56]; void excerpt(int *E) { pair<double,int>mx={0,0}; long long c[56]; for(int i=0;i<56;i++){ c[i]=0; } for(int i=0;i<100;i++){ for(int j=0;j<56;j++){ c[j]+=k[j][E[i]]; } } for(int i=0;i<99;i++){ for(int j:mpv[{E[i],E[i+1]}]){ c[j]+=100; } } for(int i=0;i<98;i++){ for(int j:mppv[{E[i],{E[i+1],E[i+2]}}]){ c[j]+=10000; } } for(int i=0;i<97;i++){ for(int j:mpppv[{E[i],{E[i+1],{E[i+2],E[i+3]}}}]){ c[j]+=1000000; } } for(int i=0;i<56;i++){ if(C[i]==0)continue; mx=max(mx,{(double)c[i]/C[i],i}); } int l=language(mx.second); C[l]++; for(int i=0;i<100;i++){ k[l][E[i]]++; } for(int i=0;i<99;i++){ mpv[{E[i],E[i+1]}].push_back(l); } for(int i=0;i<98;i++){ mppv[{E[i],{E[i+1],E[i+2]}}].push_back(l); } for(int i=0;i<97;i++){ mpppv[{E[i],{E[i+1],{E[i+2],E[i+3]}}}].push_back(l); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...