Submission #932696

# Submission time Handle Problem Language Result Execution time Memory
932696 2024-02-24T03:30:30 Z WongChun1234 Genetics (BOI18_genetics) C++14
27 / 100
2000 ms 5816 KB
#include<bits/stdc++.h>
using namespace std;
const int N=4150;
int n,m,k,curr,test,cnt,perm[N],seed[N];
string ipt,a[N];
set<pair<int,int>> ppl,all;
mt19937 rng(1234);
int random(int l,int r){
	return uniform_int_distribution<int>(l,r)(rng);
}
int choose(set<pair<int,int>> &s){
	auto it=s.upper_bound({random(1,1e9),0});
	if (it==s.end()) it=s.begin();
	return (*it).second;
}
int main(){
	cin>>n>>m>>k;
	iota(perm,perm+m,0);
	shuffle(perm,perm+m,rng);
	for (int i=1;i<=n;i++){
		cin>>ipt;
		a[i]=ipt;
		for (int j=0;j<m;j++) a[i][j]=ipt[perm[j]];
		seed[i]=random(1,1e9);
		ppl.insert({seed[i],i});
		all.insert({random(1,1e9),i});
	}
	while (ppl.size()>1){
		curr=choose(ppl);
		do{
			test=choose(all);
		} while (test==curr);
		cnt=0;
		for (int i=0;i<m;i++){
			cnt+=(a[curr][i]!=a[test][i]);
			if (cnt>k||cnt+(m-i-1)<k) break;
		}
		if (cnt!=k) ppl.erase({seed[curr],curr});
	}
	cout<<choose(ppl)<<"\n";
}
# Verdict Execution time Memory Grader output
1 Correct 28 ms 608 KB Output is correct
2 Correct 200 ms 604 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 4 ms 604 KB Output is correct
5 Correct 70 ms 348 KB Output is correct
6 Correct 220 ms 604 KB Output is correct
7 Correct 24 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 2 ms 600 KB Output is correct
10 Correct 7 ms 604 KB Output is correct
11 Correct 3 ms 604 KB Output is correct
12 Correct 6 ms 588 KB Output is correct
13 Correct 1 ms 596 KB Output is correct
14 Correct 1 ms 600 KB Output is correct
15 Correct 1 ms 604 KB Output is correct
16 Correct 1 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 2021 ms 5816 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 2021 ms 5816 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 28 ms 608 KB Output is correct
2 Correct 200 ms 604 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 4 ms 604 KB Output is correct
5 Correct 70 ms 348 KB Output is correct
6 Correct 220 ms 604 KB Output is correct
7 Correct 24 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 2 ms 600 KB Output is correct
10 Correct 7 ms 604 KB Output is correct
11 Correct 3 ms 604 KB Output is correct
12 Correct 6 ms 588 KB Output is correct
13 Correct 1 ms 596 KB Output is correct
14 Correct 1 ms 600 KB Output is correct
15 Correct 1 ms 604 KB Output is correct
16 Correct 1 ms 348 KB Output is correct
17 Correct 0 ms 348 KB Output is correct
18 Execution timed out 2021 ms 5816 KB Time limit exceeded
19 Halted 0 ms 0 KB -