CSES - Aalto Competitive Programming 2024 - wk9 - Wed - Results
Submission details
Task:Broken backspace
Sender:aalto2024j_006
Submission time:2024-11-06 16:43:57 +0200
Language:C++ (C++17)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#6ACCEPTED0.00 sdetails
#7ACCEPTED0.00 sdetails
#8ACCEPTED0.00 sdetails
#9ACCEPTED0.00 sdetails
#10ACCEPTED0.00 sdetails
#11ACCEPTED0.00 sdetails
#12ACCEPTED0.00 sdetails
#13ACCEPTED0.00 sdetails
#14ACCEPTED0.01 sdetails
#15ACCEPTED0.00 sdetails
#16ACCEPTED0.00 sdetails
#17ACCEPTED0.00 sdetails
#18ACCEPTED0.00 sdetails
#19ACCEPTED0.00 sdetails
#20ACCEPTED0.00 sdetails
#21ACCEPTED0.00 sdetails
#22ACCEPTED0.00 sdetails
#23ACCEPTED0.00 sdetails
#24ACCEPTED0.00 sdetails
#25ACCEPTED0.00 sdetails
#26ACCEPTED0.00 sdetails
#27ACCEPTED0.00 sdetails
#28ACCEPTED0.00 sdetails
#29ACCEPTED0.00 sdetails
#30ACCEPTED0.00 sdetails
#31ACCEPTED0.00 sdetails
#32ACCEPTED0.00 sdetails
#33ACCEPTED0.00 sdetails
#34ACCEPTED0.00 sdetails
#35ACCEPTED0.00 sdetails
#36ACCEPTED0.01 sdetails
#37ACCEPTED0.01 sdetails
#38ACCEPTED0.01 sdetails
#39ACCEPTED0.01 sdetails
#40ACCEPTED0.01 sdetails
#41ACCEPTED0.01 sdetails
#42ACCEPTED0.01 sdetails
#43ACCEPTED0.00 sdetails
#44ACCEPTED0.01 sdetails
#45ACCEPTED0.21 sdetails
#46ACCEPTED0.10 sdetails
#47ACCEPTED0.02 sdetails
#48ACCEPTED0.38 sdetails
#49ACCEPTED0.50 sdetails
#500.43 sdetails
#510.40 sdetails
#520.43 sdetails
#530.41 sdetails
#540.41 sdetails
#550.43 sdetails
#560.43 sdetails
#57ACCEPTED0.01 sdetails
#580.44 sdetails

Code

#include <bits/stdc++.h>

using namespace std;

int edit(string X, string Y) {

    size_t n = X.size();
    size_t m = Y.size();

    vector<vector<int>> distance(n+1, vector<int>(m+1));

    distance[0][0] = 0;

    for (size_t i = 1; i <= n; i++)
        distance[i][0] = i;
    
    for (size_t j = 1; j <= m; j++)
        distance[0][j] = j;
    
    for (size_t i = 1; i <= n; i++) {
        for (size_t j = 1; j <= m; j++) {

            //int a = 1 + distance[i-1][j];
            int b = 1 + distance[i][j-1];
            //int c = ((X[n-i] == Y[m-j]) ? 0 : 1) + distance[i-1][j-1];

            if (X[n-i] == Y[m-j]) {
                distance[i][j] = min(distance[i-1][j-1], b);
            } else {
                distance[i][j] = b;
            }

            //distance[i][j] = min(a, min(b, c));

        }
    }

    return distance[n][m];

}

int main() {

    string s, t;
    cin >> s >> t;

    int sn = s.size(), tn = t.size();

    if (tn > sn) {
        cout << "No" << endl;
        return 0;
    } else if (tn == sn) {
        if (s == t) cout << "Yes" << endl;
        else cout << "No" << endl;
        return 0;
    }

    unordered_map<char, int> s_char_occurences;
    for (int c : s) {
        if (s_char_occurences.count(c)) {
            s_char_occurences[c] = 1;
        } else {
            s_char_occurences[c]++;
        }
    }

    unordered_map<char, int> t_char_occurences;
    for (int c : t) {
        if (t_char_occurences.count(c)) {
            t_char_occurences[c] = 1;
            if (!s_char_occurences.count(c)) {
                cout << "No" << endl;
                return 0;
            }
        } else {
            t_char_occurences[c]++;
            if (t_char_occurences[c] > s_char_occurences[c]) {
                cout << "No" << endl;
                return 0;
            }
        }
    }

    int n = edit(t, s);
    if (n == sn - tn) {
        cout << "Yes" << endl;
    } else {
        cout << "No" << endl;
    }

}

Test details

Test 1

Verdict: ACCEPTED

input
y
a

correct output
No

user output
No

Test 2

Verdict: ACCEPTED

input
y
o

correct output
No

user output
No

Test 3

Verdict: ACCEPTED

input
bs
bs

correct output
Yes

user output
Yes

Test 4

Verdict: ACCEPTED

input
vfj
xz

correct output
No

user output
No

Test 5

Verdict: ACCEPTED

input
yif
yi

correct output
Yes

user output
Yes

Test 6

Verdict: ACCEPTED

input
ilzsl
zio

correct output
No

user output
No

Test 7

Verdict: ACCEPTED

input
azg
a

correct output
Yes

user output
Yes

Test 8

Verdict: ACCEPTED

input
mmad
ida

correct output
No

user output
No

Test 9

Verdict: ACCEPTED

input
rmfs
ykcm

correct output
No

user output
No

Test 10

Verdict: ACCEPTED

input
skqwu
ewix

correct output
No

user output
No

Test 11

Verdict: ACCEPTED

input
rkxgc
wtep

correct output
No

user output
No

Test 12

Verdict: ACCEPTED

input
lcat
lce

correct output
No

user output
No

Test 13

Verdict: ACCEPTED

input
zmggznshn
wibfc

correct output
No

user output
No

Test 14

Verdict: ACCEPTED

input
hjgri
fxgxt

correct output
No

user output
No

Test 15

Verdict: ACCEPTED

input
aqjtb
ci

correct output
No

user output
No

Test 16

Verdict: ACCEPTED

input
pnxnq
pnxnq

correct output
Yes

user output
Yes

Test 17

Verdict: ACCEPTED

input
smvvt
s

correct output
Yes

user output
Yes

Test 18

Verdict: ACCEPTED

input
dehlwu
de

correct output
Yes

user output
Yes

Test 19

Verdict: ACCEPTED

input
frovxqt
f

correct output
Yes

user output
Yes

Test 20

Verdict: ACCEPTED

input
isnaiipj
isnai

correct output
Yes

user output
Yes

Test 21

Verdict: ACCEPTED

input
tvfqorxbf
hsiaf

correct output
No

user output
No

Test 22

Verdict: ACCEPTED

input
hbeyzrmpxd
hbeyzrm

correct output
Yes

user output
Yes

Test 23

Verdict: ACCEPTED

input
cvfrdstyia
cvf

correct output
Yes

user output
Yes

Test 24

Verdict: ACCEPTED

input
fbqlgvoypsttw
gkqjckcnpk

correct output
No

user output
No

Test 25

Verdict: ACCEPTED

input
qetmuxclwb
grkdwns

correct output
No

user output
No

Test 26

Verdict: ACCEPTED

input
dnzdfqccei
toeqt

correct output
No

user output
No

Test 27

Verdict: ACCEPTED

input
gigitadgqgktnmlucdrpjmfgzlugaj...

correct output
No

user output
No

Test 28

Verdict: ACCEPTED

input
xhhwpsrfrqywdwqzzgdamkmrgutkys...

correct output
No

user output
No

Test 29

Verdict: ACCEPTED

input
kczmpmbrcgapydtsdjmnhgdqjlmfiw...

correct output
Yes

user output
Yes

Test 30

Verdict: ACCEPTED

input
kdolwqxnrxoguefenlghfehedsiypn...

correct output
No

user output
No

Test 31

Verdict: ACCEPTED

input
eonoxjbddvetnyzwrscrakqugzyzut...

correct output
No

user output
No

Test 32

Verdict: ACCEPTED

input
noytqcblxxegczpwfbcfazouiidlvi...

correct output
Yes

user output
Yes

Test 33

Verdict: ACCEPTED

input
fsnlwzwzhhnnxopbmalxpghzqqhdsg...

correct output
No

user output
No

Test 34

Verdict: ACCEPTED

input
vsylfagbpuzphnpddomopbxpjvhzyc...

correct output
No

user output
No

Test 35

Verdict: ACCEPTED

input
uftadotelejkwprmhqvxquphskiibj...

correct output
No

user output
No

Test 36

Verdict: ACCEPTED

input
wmykhkomvlbaxmocfcdvkcnaqsuyeu...

correct output
No

user output
No

Test 37

Verdict: ACCEPTED

input
bfvdgidzpdbtkomnsdssudrgesexai...

correct output
No

user output
No

Test 38

Verdict: ACCEPTED

input
epehugfuqusovmdehqiyoefztwalqj...

correct output
Yes

user output
Yes

Test 39

Verdict: ACCEPTED

input
xtsdkcvujwifgijwhrxjyiepwhbmpd...

correct output
Yes

user output
Yes

Test 40

Verdict: ACCEPTED

input
suawolvogvzwqdpxqxjttthrtbhnqg...

correct output
No

user output
No

Test 41

Verdict: ACCEPTED

input
vupolhhxbovznwfxdpftypuarxylzk...

correct output
No

user output
No

Test 42

Verdict: ACCEPTED

input
pnrxvijvmrczriritjrreqdtlmvtsj...

correct output
No

user output
No

Test 43

Verdict: ACCEPTED

input
nquhecwwloskilrbxfiqlzxyhggmim...

correct output
Yes

user output
Yes

Test 44

Verdict: ACCEPTED

input
yvzchujqnoihsrlbogoecilotaepru...

correct output
No

user output
No

Test 45

Verdict: ACCEPTED

input
bkbntccvyxeaqspsxlnqgybjhvkyno...

correct output
Yes

user output
Yes

Test 46

Verdict: ACCEPTED

input
pycbqedrafcfqifliujkykggxrusll...

correct output
Yes

user output
Yes

Test 47

Verdict: ACCEPTED

input
ntuyzptgfhnqgsicdshcwhcravwemj...

correct output
Yes

user output
Yes

Test 48

Verdict: ACCEPTED

input
mwdrtpocarqfmmrhlnrmaqlqkmwcwb...

correct output
No

user output
No

Test 49

Verdict: ACCEPTED

input
ylqvocuyflcqydkppyrmygbopzaciy...

correct output
No

user output
No

Test 50

Verdict:

input
bcfrdxcxwypdknwsnsheysairkjruu...

correct output
No

user output
(empty)

Test 51

Verdict:

input
luqybuerbcnshnudgittqrpncjmhjk...

correct output
Yes

user output
(empty)

Test 52

Verdict:

input
izamctfueldbjhauzhxhdvbaiedkxc...

correct output
No

user output
(empty)

Test 53

Verdict:

input
xxuxrrtdpvefxgxikyxvzvjjlnrnzv...

correct output
No

user output
(empty)

Test 54

Verdict:

input
vzckilqzoxmcrupzvrkqtjjokjcyeo...

correct output
No

user output
(empty)

Test 55

Verdict:

input
elesagcjlrhfflaqxsmukgbjiiyyyd...

correct output
Yes

user output
(empty)

Test 56

Verdict:

input
ydbfkccnflhkevsfnhrsgfisocskfs...

correct output
Yes

user output
(empty)

Test 57

Verdict: ACCEPTED

input
implxialwixramglvesaxoulttxcij...

correct output
No

user output
No

Test 58

Verdict:

input
uarjxljelkshogcskndxmcouwesvrt...

correct output
No

user output
(empty)