CSES - KILO 2016 3/5 - Results
Submission details
Task:Palindrome
Sender:Ollie
Submission time:2016-09-20 18:56:41 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#10.10 sdetails
#20.10 sdetails
#3ACCEPTED0.10 sdetails
#40.10 sdetails
#50.10 sdetails
#6ACCEPTED0.10 sdetails
#7ACCEPTED0.10 sdetails
#80.09 sdetails
#90.09 sdetails
#10ACCEPTED0.10 sdetails
#11ACCEPTED0.10 sdetails
#12ACCEPTED0.10 sdetails
#130.09 sdetails
#14ACCEPTED0.09 sdetails
#15ACCEPTED0.08 sdetails
#160.09 sdetails
#170.10 sdetails
#18ACCEPTED0.09 sdetails
#190.09 sdetails
#200.09 sdetails
#21ACCEPTED0.09 sdetails
#22ACCEPTED0.08 sdetails
#23ACCEPTED0.09 sdetails
#24ACCEPTED0.10 sdetails
#250.08 sdetails
#26ACCEPTED0.08 sdetails
#27ACCEPTED0.10 sdetails
#280.09 sdetails
#290.09 sdetails
#300.09 sdetails

Code

#include <bits/stdc++.h>
#define N 100001
#define ll long long

using namespace std;

unsigned int ed(const std::string& s1, const std::string& s2) {
  const std::size_t len1 = s1.size(), len2 = s2.size();
  std::vector<std::vector<unsigned int>> d(len1 + 1, std::vector<unsigned int>(len2 + 1));

  d[0][0] = 0;
  for(unsigned int i = 1; i <= len1; ++i) d[i][0] = i;
  for(unsigned int i = 1; i <= len2; ++i) d[0][i] = i;

  for(unsigned int i = 1; i <= len1; ++i)
    for(unsigned int j = 1; j <= len2; ++j)
      d[i][j] = std::min({ d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + (s1[i - 1] == s2[j - 1] ? 0 : 1) });
  return d[len1][len2];
}

int main() {
  ios_base::sync_with_stdio(0);
  string s;
  cin >> s;
  int n = s.length();
  
  unsigned mm = 99999999;
  for(int i=-2;i<3;i++) {
    int co = n/2+i;
    if(co<0||co>=n) continue;
    string l="", r="";
    for(int j=0;j<n;j++) {
      if(j<co) l+=s[j];
      else r+=s[j];
    }
    reverse(r.begin(), r.end());
    mm = min(mm, ed(l, r));
    l="", r="";
    for(int j=0;j<n;j++) {
      if(j==co) continue;
      if(j<co) l+=s[j];
      else r+=s[j];
    }
    reverse(r.begin(), r.end());
    mm = min(mm, ed(l, r));
  }
  cout << mm << endl;
  return 0;
}

Test details

Test 1

Verdict:

input
ulfoeirkeoqdqodoogghreatbunekn...

correct output
322

user output
328

Test 2

Verdict:

input
pdloqnpaoipdormtocrkbugqkutggo...

correct output
42

user output
46

Test 3

Verdict: ACCEPTED

input
nsjeeqtgbhihbqnrkjqesndoqpsupm...

correct output
6

user output
6

Test 4

Verdict:

input
cbdabbabdadbddccdabbddbbabdbcb...

correct output
520

user output
522

Test 5

Verdict:

input
qufflsdamkhaqfstkpmggbiscqahmb...

correct output
332

user output
336

Test 6

Verdict: ACCEPTED

input
metqijcfsonpgtjkgfnbkkcmhfdidr...

correct output
52

user output
52

Test 7

Verdict: ACCEPTED

input
gjctsgogicncablbpicjhhhtumcqcr...

correct output
7

user output
7

Test 8

Verdict:

input
bcdaccdaaaddbddbcbabccbabbcadd...

correct output
517

user output
523

Test 9

Verdict:

input
ljqskggebsriqfcrbaseostkbtufpk...

correct output
323

user output
329

Test 10

Verdict: ACCEPTED

input
opthatefgdoqcnelkocdpiekdalblk...

correct output
43

user output
43

Test 11

Verdict: ACCEPTED

input
tsifskqoacandopustasbcprqqgubc...

correct output
9

user output
9

Test 12

Verdict: ACCEPTED

input
dcdcddcaccccccbddabadacadaadad...

correct output
519

user output
519

Test 13

Verdict:

input
psmqpkpdbflqsnummddslbbmqlbttl...

correct output
344

user output
355

Test 14

Verdict: ACCEPTED

input
kfbicrmensbkppfnechdgaangnekra...

correct output
47

user output
47

Test 15

Verdict: ACCEPTED

input
utmicheffpsumjmdmlltfkauerouou...

correct output
7

user output
7

Test 16

Verdict:

input
aadcbccaddbbddaacdacbadcccccab...

correct output
513

user output
518

Test 17

Verdict:

input
knousbhjpartmqrddgtuilrqmptfbm...

correct output
347

user output
357

Test 18

Verdict: ACCEPTED

input
mialfaqdecpampccjljbtfcsobdumg...

correct output
50

user output
50

Test 19

Verdict:

input
tbolpoikroedjdrjqboqptktnqfulo...

correct output
15

user output
16

Test 20

Verdict:

input
babbbabcacbbbdcaacddadaaadccdc...

correct output
521

user output
528

Test 21

Verdict: ACCEPTED

input
oqbbmemeheigflklkicqdlriifijfp...

correct output
350

user output
350

Test 22

Verdict: ACCEPTED

input
iscgirlmkcdgisciganitjdugeoegb...

correct output
45

user output
45

Test 23

Verdict: ACCEPTED

input
nrlifhnrkorbihsosdibeaapnbcmnp...

correct output
10

user output
10

Test 24

Verdict: ACCEPTED

input
ddbdcacbacadaaaaddcaadbdcabbba...

correct output
524

user output
524

Test 25

Verdict:

input
pskpisphqttuafltbrgiliehohrdre...

correct output
301

user output
315

Test 26

Verdict: ACCEPTED

input
qlmpbmdcjgiibjdggepnjgdqddrjgu...

correct output
42

user output
42

Test 27

Verdict: ACCEPTED

input
kmemgrjpooulrgoofbejhtfnsdpfnl...

correct output
5

user output
5

Test 28

Verdict:

input
dbadbacabbaabccdbcacdadbaddcca...

correct output
523

user output
524

Test 29

Verdict:

input
riucascnslqgplsknhpmccgqenhpni...

correct output
357

user output
365

Test 30

Verdict:

input
dedhqdrbrorasgunkdtdsujciuaqbu...

correct output
48

user output
56