QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#141630 | #5254. Differences | PhantomThreshold# | TL | 0ms | 0kb | C++20 | 1.0kb | 2023-08-17 18:22:24 | 2023-08-17 18:22:27 |
answer
#include<bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
mt19937 rng(58);
int n,m,k;
cin>>n>>m>>k;
vector<pair<string,int>> s(n+5);
for(int i=1;i<=n;i++)
{
cin>>s[i].first;
s[i].second=i;
}
random_shuffle(s.begin()+1,s.begin()+n+1,[&](int x){return rng()%x;});
auto cmp=[&](int x,int y)
{
int kk=0;
for(int i=0;i<m;i++)
{
if(s[x].first[i]!=s[y].first[i])
{
kk++;
if(kk>k)return false;
if(kk+m-i-1<k)return false;
}
}
if(kk==k)return true;
return false;
};
vector<int> cnt(n+5,0);
const int magic=35;
for(int i=1;i<=min(n,magic);i++)
{
for(int j=i+1;j<=n;j++)
{
if(i==j)continue;
if(cmp(i,j))
{
cnt[j]++;cnt[i]++;
}
}
}
// for(int i=1;i<=n;i++)cerr<<cnt[i]<<endl;
for(int i=1;i<=min(n,magic);i++)
{
if(cnt[i]==n-1)
{
cout<<s[i].second<<endl;
return 0;
}
}
for(int i=magic+1;i<=n;i++)
{
if(cnt[i]==magic)
{
cout<<s[i].second<<endl;
return 0;
}
}
assert(0);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Time Limit Exceeded
input:
3585 4096 2048 ABBBBBBAABAAAAAAAAAAAAABAABABBBABABAAAAABABAAAABAABAABBABBAABAABABBABAABBABBABABABBAAAABBABAABBBBABBBAABBBBBABAABAAABAAABBBBAAAABAABAABABABABBBBBABAAABAAABBAABABBABAABBAABBAABABBBBAABAAAABAABBABAAABBAAAAAABAABBABBABAABABBBAABABBABABBBAAAAABBBABABABBAABAAAABBBBABABAABBBABABABBAABBBABAB...