QOJ.ac
QOJ
The 2nd Universal Cup Finals is coming! Check out our event page, schedule, and competition rules!
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#64135 | #5119. Perfect Word | DaBenZhongXiaSongKuaiDi# | WA | 5ms | 6460kb | C++14 | 1.1kb | 2022-11-24 09:44:53 | 2022-11-24 09:44:54 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = (int)1e5+5;
const int bs = 37, p1 = 998244353, p2 = (int)1e9+7;
int n,len[maxn],lst[maxn]; string s[maxn]; unordered_map<ll,int> mp;
bool cmp(int X,int Y){return len[X]<len[Y];}
ll get_hs(int idx,int l,int r){
ll hs1 = 0, hs2 = 0;
for(int al=l;al<=r;al++){
hs1 = hs1*bs%p1, hs2 = hs2*bs%p2;
hs1 = (hs1+s[idx][al]-'a')%p1,
hs2 = (hs2+s[idx][al]-'a')%p2;
}
return (hs1<<32)|hs2;
}
int main(){
ios::sync_with_stdio(false); cin.tie(0), cout.tie(0);
cin >> n;
for(int al=1;al<=n;al++) cin >> s[al], len[al] = s[al].length(), lst[al] = al;
sort(lst+1,lst+n+1,cmp);
int ans = 0;
for(int al=1;al<=n;al++)
if(len[lst[al]]==1) mp.insert(make_pair(get_hs(lst[al],0,len[lst[al]]-1),1)), ans = 1;
else{
ll hs1 = get_hs(lst[al],0,len[lst[al]]-2);
ll hs2 = get_hs(lst[al],1,len[lst[al]]-1);
if(mp.count(hs1) && mp.count(hs2))
mp.insert(make_pair(get_hs(lst[al],0,len[lst[al]]-1),1)), ans = len[lst[al]];
}
cout << ans << endl;
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 2ms
memory: 6420kb
input:
4 a t b ab
output:
2
result:
ok 1 number(s): "2"
Test #2:
score: 0
Accepted
time: 0ms
memory: 6452kb
input:
310 a aa aaa aaaa aaaaa aaaaaa aaaaaaa aaaaaaaa aaaaaaaaa aaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaaa aaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaa...
output:
300
result:
ok 1 number(s): "300"
Test #3:
score: -100
Wrong Answer
time: 5ms
memory: 6460kb
input:
4347 bbaaaab aabab bbaaaaababaaaba aababaaaabbbabababaaaba ababbabbbbbabbbabbab bbbbbbb bbbabbbabbabaab aabbbbabbbbaa aabaaabbbbbabaaababaa aaabababba aaababbaabab abbababbabbab bababaabbbbaaa aaaaaabaaaababaa ababaababba babaababbbababaaab bb abbbaaaababa b ab aaabbbbb abaabaaaaababbbab bbaaabaab b...
output:
16
result:
wrong answer 1st numbers differ - expected: '10', found: '16'