# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
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; } }