| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 575355 | drekavacc | Languages (IOI10_languages) | C++14 | 0 ms | 0 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <lang.h>
#include <set>
#include <grader.h>
using namespace std;
int slo[60][70000];
 
void excerpt(int *a){
  	set<int> chars;
  	map<int, int> val;
  	for(int i=0; i<100; i++) chars.insert(a[i]), val[a[i]]++;
  	
  	int best = 0;
  	int mdif = 1000000;
	
	for(int l=0; l<56; l++){
		int cd = 0;
		
		for(int c : chars){
			cd += abs(val[c] - slo[l][c]);
		}
		
		if(cd < mdif){
			mdif = cd;
			best = l;
		}
		
		int correct = language(best);
		for(char c : chars){
			slo[correct] = (slo[correct][c] + val[c]) / 2;
		}
	}
}
