CSES - APIO 2014 - Results
Submission details
Task:Palindromes
Sender:Yytsi
Submission time:2019-03-24 18:35:04 +0200
Language:C++
Status:READY
Result:23
Feedback
groupverdictscore
#1ACCEPTED8
#2ACCEPTED15
#30
#40
#50
Test results
testverdicttimegroup
#1ACCEPTED0.02 s1, 2, 3, 4, 5details
#2ACCEPTED0.01 s1, 2, 3, 4, 5details
#3ACCEPTED0.01 s1, 2, 3, 4, 5details
#4ACCEPTED0.02 s1, 2, 3, 4, 5details
#5ACCEPTED0.01 s1, 2, 3, 4, 5details
#6ACCEPTED0.01 s1, 2, 3, 4, 5details
#7ACCEPTED0.01 s1, 2, 3, 4, 5details
#8ACCEPTED0.01 s1, 2, 3, 4, 5details
#9ACCEPTED0.02 s1, 2, 3, 4, 5details
#10ACCEPTED0.01 s1, 2, 3, 4, 5details
#11ACCEPTED0.01 s1, 2, 3, 4, 5details
#12ACCEPTED0.02 s1, 2, 3, 4, 5details
#13ACCEPTED0.02 s1, 2, 3, 4, 5details
#14ACCEPTED0.01 s1, 2, 3, 4, 5details
#15ACCEPTED0.02 s1, 2, 3, 4, 5details
#16ACCEPTED0.01 s1, 2, 3, 4, 5details
#17ACCEPTED0.02 s1, 2, 3, 4, 5details
#18ACCEPTED0.02 s1, 2, 3, 4, 5details
#19ACCEPTED0.01 s1, 2, 3, 4, 5details
#20ACCEPTED0.03 s1, 2, 3, 4, 5details
#21ACCEPTED0.01 s1, 2, 3, 4, 5details
#22ACCEPTED0.02 s1, 2, 3, 4, 5details
#23ACCEPTED0.02 s1, 2, 3, 4, 5details
#24ACCEPTED0.02 s1, 2, 3, 4, 5details
#25ACCEPTED0.04 s1, 2, 3, 4, 5details
#26ACCEPTED0.02 s1, 2, 3, 4, 5details
#27ACCEPTED0.02 s1, 2, 3, 4, 5details
#28ACCEPTED0.01 s1, 2, 3, 4, 5details
#29ACCEPTED0.02 s1, 2, 3, 4, 5details
#30ACCEPTED0.01 s1, 2, 3, 4, 5details
#31ACCEPTED0.01 s1, 2, 3, 4, 5details
#32ACCEPTED0.01 s1, 2, 3, 4, 5details
#33ACCEPTED0.04 s2, 3, 4, 5details
#34ACCEPTED0.04 s2, 3, 4, 5details
#35ACCEPTED0.07 s2, 3, 4, 5details
#36ACCEPTED0.02 s2, 3, 4, 5details
#37ACCEPTED0.08 s2, 3, 4, 5details
#38ACCEPTED0.08 s2, 3, 4, 5details
#39ACCEPTED0.02 s2, 3, 4, 5details
#40ACCEPTED0.05 s2, 3, 4, 5details
#41ACCEPTED0.01 s2, 3, 4, 5details
#42ACCEPTED0.02 s2, 3, 4, 5details
#43ACCEPTED0.02 s2, 3, 4, 5details
#44ACCEPTED0.01 s2, 3, 4, 5details
#45--3, 4, 5details
#46--3, 4, 5details
#47--3, 4, 5details
#48--3, 4, 5details
#49ACCEPTED0.03 s3, 4, 5details
#50ACCEPTED0.22 s3, 4, 5details
#51ACCEPTED0.73 s3, 4, 5details
#52ACCEPTED0.02 s3, 4, 5details
#53ACCEPTED0.02 s3, 4, 5details
#54ACCEPTED0.02 s3, 4, 5details
#550.01 s4, 5details
#560.02 s4, 5details
#570.03 s4, 5details
#580.02 s4, 5details
#590.02 s4, 5details
#600.02 s4, 5details
#610.01 s4, 5details
#620.01 s4, 5details
#630.03 s4, 5details
#640.02 s4, 5details
#650.02 s5details
#660.03 s5details
#670.01 s5details
#680.02 s5details
#690.03 s5details
#700.01 s5details
#710.02 s5details
#720.02 s5details
#730.02 s5details
#740.02 s5details
#750.02 s5details
#760.02 s5details

Code

// oispa harjotellu palindromipuun


#include <bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for (int i=a; i<(b); i++)
#define IO ios_base::sync_with_stdio(0); cin.tie(0)
#define F first
#define S second
#define pb push_back
typedef long long ll;
typedef pair<int, int> pii;

map<ll, int> cnt;
string s;
int n;
int d[2][11000];

ll H[11000], pA[11000];
ll A = 911382323, B = 972663817;

ll get(int a, int b) {
  if (a == 0) return H[b];
  ll r = (H[b]-H[a-1]*pA[b-a+1])%B;
  if (r < 0) r += B;
  return r;
}


ll mx = 1;
void add(ll x, ll w) {
  ll a = (++cnt[x]);
  if (a * w > mx) {
    mx = a * w;
    //cout<<"new best: cnt: "<<a<<" length: "<<w<<"\n";
  }
}

int main() {
  IO; cin>>s;
  n = s.size();
  H[0] = s[0];

  pA[0] = 1;
  FOR(i,1,n) {
    H[i] = (H[i-1]*A + (int)s[i]) % B;
    pA[i] = (pA[i-1] * A) % B;
  }

  FOR(i,0,n) add(get(i,i), 1);
  FOR(i,0,n) {
    d[1-1][i] = 1;
    while (0<=i-d[0][i] && i+d[0][i]<n && s[i-d[0][i]] == s[i+d[0][i]]) {
      d[0][i]++;
      int l = d[0][i];
      int lft = i - l + 1;
      int rt = i + l - 1;
      add(get(lft, rt), l*2-1);
      //cout<<i<<" "<<d[0][i]<<"\n";
    }


    d[1][i] = 0;
    while (0<=i-d[1][i]-1 && i+d[1][i]<n && s[i-d[1][i]-1] == s[i+d[1][i]]) {
      d[1][i]++;
      int l = d[1][i];
      int lft = i - l;
      int rt = i + l - 1;
      add(get(lft, rt), l * 2);
      //cout<<i<<" "<<d[1][i]<<"\n";
    }
  }

  cout<<mx<<"\n"; 
}

Test details

Test 1

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
abacaba

correct output
7

user output
7

Test 2

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
www

correct output
4

user output
4

Test 3

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
abacababa

correct output
9

user output
9

Test 4

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
r

correct output
1

user output
1

Test 5

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
xd

correct output
1

user output
1

Test 6

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
dd

correct output
2

user output
2

Test 7

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
opo

correct output
3

user output
3

Test 8

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
opoo

correct output
3

user output
3

Test 9

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
abacabadabacaba

correct output
15

user output
15

Test 10

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
xxxxxyxxxxyxxxxx

correct output
24

user output
24

Test 11

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
xxxyxxxyzzzabcdxxdcba

correct output
10

user output
10

Test 12

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
qpppppppwowpppppq

correct output
24

user output
24

Test 13

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
mqmwmemrmtymmmmmmmmqwertyeeeee...

correct output
25

user output
25

Test 14

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
mqmwmmmmmemrmtymmmmmmmmqwertye...

correct output
28

user output
28

Test 15

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
abcdefghijklmnopqrstuvwxyzz

correct output
2

user output
2

Test 16

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
abcdefghijklmnopqrstuvwxyz

correct output
1

user output
1

Test 17

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
apiodpdpdpdpdpgoodchallenge

correct output
15

user output
15

Test 18

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
pdpdpdpxdpdpdxdpdpdx

correct output
18

user output
18

Test 19

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
jejejejejejejejejejejejejejeje...

correct output
1176

user output
1176

Test 20

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
wzwzwzwzwzwzwzwzwzwzwzwzwzwzwz...

correct output
1225

user output
1225

Test 21

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
qsqsqsqsqsqsqianananananananan...

correct output
136

user output
136

Test 22

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
hsoqhdnglglqqhqhqhqhqhqhqmyiyi...

correct output
45

user output
45

Test 23

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
oooooooooooooooooooooooooooooo...

correct output
2500

user output
2500

Test 24

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb...

correct output
380

user output
380

Test 25

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjj...

correct output
2304

user output
2304

Test 26

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
gggggggggtoooooooooccwwwwwwwww...

correct output
110

user output
110

Test 27

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
vlvivlvwvlvivlvkvlvivlvwvlvivl...

correct output
93

user output
93

Test 28

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
nbnenbnjnbnenbnxnbnenbnjnbnenb...

correct output
729

user output
729

Test 29

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
ydycydylydycydyodoycydylydycyd...

correct output
132

user output
132

Test 30

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
dzydpxreexldgbslbouxllaizermiy...

correct output
7

user output
7

Test 31

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
bpmerpingvjipwmenzzalhrsmrkmxv...

correct output
8

user output
8

Test 32

Group: 1, 2, 3, 4, 5

Verdict: ACCEPTED

input
abbabaabbaababbabaababbaabbaba...

correct output
64

user output
64

Test 33

Group: 2, 3, 4, 5

Verdict: ACCEPTED

input
yhyhyhyhyhyhyhyhyhyhyhyhyhyhyh...

correct output
124251

user output
124251

Test 34

Group: 2, 3, 4, 5

Verdict: ACCEPTED

input
nknknknknknknknknknknknknknknk...

correct output
38226

user output
38226

Test 35

Group: 2, 3, 4, 5

Verdict: ACCEPTED

input
oooooooooooooooooooooooooooooo...

correct output
249500

user output
249500

Test 36

Group: 2, 3, 4, 5

Verdict: ACCEPTED

input
ktktktktktktktktktktktktktktkt...

correct output
5778

user output
5778

Test 37

Group: 2, 3, 4, 5

Verdict: ACCEPTED

input
gggggggggggggggggggggggggggggg...

correct output
247506

user output
247506

Test 38

Group: 2, 3, 4, 5

Verdict: ACCEPTED

input
dddddddddddddddddddddddddddddd...

correct output
248004

user output
248004

Test 39

Group: 2, 3, 4, 5

Verdict: ACCEPTED

input
tdtytdtxtdtytdtptdtytdtxtdtytd...

correct output
973

user output
973

Test 40

Group: 2, 3, 4, 5

Verdict: ACCEPTED

input
xfxfxfxfxfxfxfxfxfxfxfxfxfxfxf...

correct output
123753

user output
123753

Test 41

Group: 2, 3, 4, 5

Verdict: ACCEPTED

input
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy...

correct output
2346

user output
2346

Test 42

Group: 2, 3, 4, 5

Verdict: ACCEPTED

input
phxbzjihyzgshwcidlnkwkltarrnbv...

correct output
53

user output
53

Test 43

Group: 2, 3, 4, 5

Verdict: ACCEPTED

input
nkevzhqlzcmqmbvtbojxbbtvgsxkbh...

correct output
52

user output
52

Test 44

Group: 2, 3, 4, 5

Verdict: ACCEPTED

input
abbabaabbaababbabaababbaabbaba...

correct output
976

user output
976

Test 45

Group: 3, 4, 5

Verdict:

input
lnlnlnlnlnlnlnlnlnlnlnlnlnlnln...

correct output
12497500

user output
(empty)

Test 46

Group: 3, 4, 5

Verdict:

input
qhqhqhqhqhqhqhqhqhqhqhqhqhqhqh...

correct output
6481800

user output
(empty)

Test 47

Group: 3, 4, 5

Verdict:

input
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa...

correct output
25000000

user output
(empty)

Test 48

Group: 3, 4, 5

Verdict:

input
ffffffffffffffffffffffffffffff...

correct output
17816841

user output
(empty)

Test 49

Group: 3, 4, 5

Verdict: ACCEPTED

input
xlxixlxpxlxixlxexlxixlxpxlxixl...

correct output
9945

user output
9945

Test 50

Group: 3, 4, 5

Verdict: ACCEPTED

input
elelelelelelelelelelelelelelel...

correct output
504100

user output
504100

Test 51

Group: 3, 4, 5

Verdict: ACCEPTED

input
afamafacafamafakafamafacafamaf...

correct output
1512930

user output
1512930

Test 52

Group: 3, 4, 5

Verdict: ACCEPTED

input
hmdqbxxvfzcxpohuffioztrgqgxkhf...

correct output
413

user output
413

Test 53

Group: 3, 4, 5

Verdict: ACCEPTED

input
xznwghgyngrjehtffuiepaedcvdova...

correct output
428

user output
428

Test 54

Group: 3, 4, 5

Verdict: ACCEPTED

input
abbabaabbaababbabaababbaabbaba...

correct output
7232

user output
7232

Test 55

Group: 4, 5

Verdict:

input
bhbhbhbhbhbhbhbhbhbhbhbhbhbhbh...

correct output
1249925001

user output
(empty)

Test 56

Group: 4, 5

Verdict:

input
ususususususususususususususus...

correct output
396337935

user output
(empty)

Test 57

Group: 4, 5

Verdict:

input
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy...

correct output
2500050000

user output
(empty)

Test 58

Group: 4, 5

Verdict:

input
llllllllllllllllllllllllllllll...

correct output
1016525689

user output
(empty)

Test 59

Group: 4, 5

Verdict:

input
kvkikvklkvkikvkgkvkikvklkvkikv...

correct output
99645

user output
(empty)

Test 60

Group: 4, 5

Verdict:

input
pqpzpqpupqpzpqpbpqpzpqpupqpzpq...

correct output
78569380

user output
(empty)

Test 61

Group: 4, 5

Verdict:

input
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqq...

correct output
82810000

user output
(empty)

Test 62

Group: 4, 5

Verdict:

input
vmlqjhjiwwzijupbzztlkcxbcdavxy...

correct output
3989

user output
(empty)

Test 63

Group: 4, 5

Verdict:

input
bcqqtvvdvexrttkgcbhmlhoasnlcek...

correct output
125529616

user output
(empty)

Test 64

Group: 4, 5

Verdict:

input
abbabaabbaababbabaababbaabbaba...

correct output
66664

user output
(empty)

Test 65

Group: 5

Verdict:

input
bnbnbnbnbnbnbnbnbnbnbnbnbnbnbn...

correct output
11250075000

user output
(empty)

Test 66

Group: 5

Verdict:

input
jzjzjzjzjzjzjzjzjzjzjzjzjzjzjz...

correct output
894243195

user output
(empty)

Test 67

Group: 5

Verdict:

input
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyy...

correct output
22499400004

user output
(empty)

Test 68

Group: 5

Verdict:

input
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...

correct output
2958163321

user output
(empty)

Test 69

Group: 5

Verdict:

input
xqxtxqxwxqxtxqxlxqxtxqxwxqxtxq...

correct output
298935

user output
(empty)

Test 70

Group: 5

Verdict:

input
zwzwzwzwzwzwzwzwzwzwzwzwzwzwzw...

correct output
1210831209

user output
(empty)

Test 71

Group: 5

Verdict:

input
hyhnhyhehyhnhyhlhyhnhyhehyhnhy...

correct output
303195156

user output
(empty)

Test 72

Group: 5

Verdict:

input
hnrootvymrwweaxjusfltkgyqyeioo...

correct output
11804

user output
(empty)

Test 73

Group: 5

Verdict:

input
yoljcehfgzraqykusrdwgqxdudzvep...

correct output
11813

user output
(empty)

Test 74

Group: 5

Verdict:

input
abbabaabbaababbabaababbaabbaba...

correct output
262144

user output
(empty)

Test 75

Group: 5

Verdict:

input
acbabcacbabcacbabcacbabcacbabc...

correct output
3750025000

user output
(empty)

Test 76

Group: 5

Verdict:

input
uptvtysodzujkjcvrzkzydggrhjjli...

correct output
184796836

user output
(empty)