| Task: | Merkkijonot |
| Sender: | untokarila |
| Submission time: | 2019-09-30 17:02:09 +0300 |
| Language: | C++ (C++11) |
| Status: | READY |
| Result: | 46 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 15 |
| #2 | ACCEPTED | 31 |
| #3 | WRONG ANSWER | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #2 | ACCEPTED | 0.01 s | 2, 3 | details |
| #3 | WRONG ANSWER | 0.19 s | 3 | details |
| #4 | ACCEPTED | 0.18 s | 3 | details |
| #5 | ACCEPTED | 0.04 s | 3 | details |
| #6 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #7 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #8 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #9 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #10 | ACCEPTED | 0.02 s | 2, 3 | details |
| #11 | ACCEPTED | 0.02 s | 2, 3 | details |
| #12 | ACCEPTED | 0.02 s | 2, 3 | details |
| #13 | ACCEPTED | 0.02 s | 2, 3 | details |
| #14 | ACCEPTED | 0.02 s | 2, 3 | details |
| #15 | WRONG ANSWER | 0.24 s | 3 | details |
| #16 | WRONG ANSWER | 0.24 s | 3 | details |
| #17 | WRONG ANSWER | 0.24 s | 3 | details |
| #18 | WRONG ANSWER | 0.24 s | 3 | details |
| #19 | WRONG ANSWER | 0.24 s | 3 | details |
| #20 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #21 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #22 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #23 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #24 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
Code
#include <iostream>
#include <vector>
#include <set>
#include <map>
#define ll long long
#define A 952342887
#define B 993454253
using namespace std;
set<int> hshs;
map<int, int> hshm;
vector<int> v[26];
int n, c[101010][51];
int main(){
cin >> n;
for(int i=0; i<n; i++){
string s;
cin >> s;
int nx = 66, z = s.size();
for(int j=0; j<26; j++) v[j].clear();
for(int j=0; j<z; j++) v[s[j]-65].push_back(j);
for(int j=0; j<z; j++){
if(c[i][j]) continue;
if(v[s[j]-65].size()==1) c[i][j] = 65;
else{
for(auto a : v[s[j]-65]) c[i][a] = nx;
nx += 11;
}
}
ll h = 0;
for(int j=0; j<z; j++) h = ((h+c[i][j])*A)%B;
hshs.insert(h);
hshm[h]++;
}
ll ans = 0;
for(auto a : hshs){
ll o = hshm[a];
ans += (o*(o-1))/2;
}
cout << ans;
return 0;
}
Test details
Test 1
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 20 FFDISOVJLPIASANJRBHQXJVW HBGVRZFWOTAAVUPYKMKXAOBEYUE JKHXTPHUKTLTLNXMXMSYYFLF HCSZMXTZCUFHIHSTEWKHCFZRTXU ... |
| correct output |
|---|
| 20 |
| user output |
|---|
| 20 |
Test 2
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 5000 AJEDROEDXRGDUSDAPZBXXQBPJ PDGCTAGCRTBCJICPFELRRMLFD TISAOTGMDKUCITIEFQVCSBZJYUUO FMASVJYFPMELSVLQWFZVLVMSPHYL ... |
| correct output |
|---|
| 2178556 |
| user output |
|---|
| 2178556 |
Test 3
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 100000 RESKYADLVRSDCDXJVECAJCAP CZLIWDHKVNRJHZINHFBOQEPN LSTRSDTLADUIWXFQJSQPVRSPBCTZ QEMSZOQSSVBRNQTCLJQIGVQO ... |
| correct output |
|---|
| 404880850 |
| user output |
|---|
| 404880855 |
Test 4
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... |
| correct output |
|---|
| 4999950000 |
| user output |
|---|
| 4999950000 |
Test 5
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 IPI Q SPGV UNYE ... |
| correct output |
|---|
| 1041990627 |
| user output |
|---|
| 1041990627 |
Test 6
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 20 A B C D ... |
| correct output |
|---|
| 190 |
| user output |
|---|
| 190 |
Test 7
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1 A |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 8
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 20 A BB CCC DDDD ... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 9
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 2 A A |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 10
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 5000 SEKNHNRHSRFYIHSCDPGXPTGUSYBFKZ... |
| correct output |
|---|
| 20861 |
| user output |
|---|
| 20861 |
Test 11
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 5000 UGPWHWOWAREEIROZTRJGUCKDKTZJEO... |
| correct output |
|---|
| 22818 |
| user output |
|---|
| 22818 |
Test 12
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 5000 FFQQCBCINBDWIKHFPO SCJU DNHYPGIQNZS KNQCYRAXHHKORXMOVHL ... |
| correct output |
|---|
| 22268 |
| user output |
|---|
| 22268 |
Test 13
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 5000 QVWMSYPWXWBBXWCVEOUAVQLDWNBXZB... |
| correct output |
|---|
| 22589 |
| user output |
|---|
| 22589 |
Test 14
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 5000 JYORMNQAKXHNRBWGGSMWXWXMBKPBZU... |
| correct output |
|---|
| 20482 |
| user output |
|---|
| 20482 |
Test 15
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 100000 DCXXVIEYQAASZJYUUVYZUIJFGVBAYC... |
| correct output |
|---|
| 8925377 |
| user output |
|---|
| 8925379 |
Test 16
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 100000 IJZHBIYNWQBDWNGZWVXJKXXWFVLPQX... |
| correct output |
|---|
| 8907840 |
| user output |
|---|
| 8907841 |
Test 17
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 100000 GWUGLGQDAYGGJROIAKBMMICQMDUQQQ... |
| correct output |
|---|
| 8771809 |
| user output |
|---|
| 8771816 |
Test 18
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 100000 SWVSVXURRSLCSHCPAKWESIPCNDKYLD... |
| correct output |
|---|
| 8704480 |
| user output |
|---|
| 8704484 |
Test 19
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 100000 ZLSNSZBGIMCOLPDEAKVDAJCTMBNRLH... |
| correct output |
|---|
| 8672362 |
| user output |
|---|
| 8672366 |
Test 20
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 20 AAB D CDBAA D ... |
| correct output |
|---|
| 15 |
| user output |
|---|
| 15 |
Test 21
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 20 A CDD AABBC DBCB ... |
| correct output |
|---|
| 15 |
| user output |
|---|
| 15 |
Test 22
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 20 ACADD CDDCD DACA CCDCA ... |
| correct output |
|---|
| 17 |
| user output |
|---|
| 17 |
Test 23
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 20 DCDA BDBA CACBD BA ... |
| correct output |
|---|
| 7 |
| user output |
|---|
| 7 |
Test 24
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 20 DDA BBCDC DDD CCD ... |
| correct output |
|---|
| 14 |
| user output |
|---|
| 14 |
