# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
12884 | 2015-01-18T12:51:19 Z | gs14004 | Languages (IOI10_languages) | C++ | 0 ms | 0 KB |
#include <map> #include <algorithm> #include <vector> #include "lang.h" using namespace std; map<long long,int> mp; vector<long long> v; const int l = 5; const int p = 69997; void excerpt(int *E){ int cnt[105] = {}; v.clear(); for (int i=0; i<96; i++) { long long px = 0; for (int j=0; j<l; j++) { px = p * px + E[i+j]; } map<long long,int> ::iterator it = mp.lower_bound(px); if(it != mp.end()) cnt[(*it).second]++; v.push_back(px); } int mv = (int)(max_element(cnt,cnt+56) - cnt); int t = language(mv); for (int i=0; i<v.size(); i++) { mp[v[i]] = t; } }