CSES - Leirikisa 9.12.2021 - Results
Submission details
Task:Ruudukko
Sender:MojoLake
Submission time:2021-12-09 14:24:19 +0200
Language:C++ (C++17)
Status:READY
Result:17
Feedback
groupverdictscore
#1ACCEPTED17
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1details
#2ACCEPTED0.01 s1details
#3ACCEPTED0.01 s1details
#4ACCEPTED0.01 s1details
#5ACCEPTED0.01 s1details
#6--2details
#7--2details
#8ACCEPTED0.01 s2details
#9ACCEPTED0.02 s2details
#10ACCEPTED0.08 s2details
#11--3details
#12--3details
#13--3details
#14--3details
#15--3details

Compiler report

input/code.cpp: In function 'void bt(int, int, std::__cxx11::string)':
input/code.cpp:16:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i = 0; i < now.length() - best.length(); ++i)help+="A";
                        ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
input/code.cpp:25:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i = 0; i < best.length() - now.length(); ++i)now+="A";
                        ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Code

#include <bits/stdc++.h>

#define ll long long
using namespace std;

int n;
vector<string> ans;
string str[500][500];
string best = "";
string full_best = "";

void bt(int y, int x, string now){
    now+=str[y][x];
    if(now.length() > best.length()){
        string help = best;
        for(int i = 0; i < now.length() - best.length(); ++i)help+="A";
        if(now<help)best=now;
    }
    else if(now.length() == best.length()){
        if(now<best)return;
        else best=now;
    }
    else if(now.length() < best.length()){
        string help = now;
        for(int i = 0; i < best.length() - now.length(); ++i)now+="A";
        if(now>best)return;
    }
    if(x==n-1&&y==n-1){
        if(now<full_best)full_best=now;
        return;
    }
    else if(x==n-1)bt(y+1, x, now);
    else if(y==n-1)bt(y, x+1, now);
    else if(str[y][x+1]==str[y+1][x]){
        bt(y+1, x, now); bt(y, x+1, now);
        return;
    }
    else if(str[y][x+1]<str[y+1][x]){
        bt(y, x+1, now);
    }
    else bt(y+1, x, now);

}

int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0);
    cin >> n;
    for(int i = 0; i < 2 * n - 1; ++i)full_best+="Z";
    for(int i = 0; i < n; ++i){
        for(int k = 0; k < n; ++k){
            char c; cin >> c;
            str[i][k].push_back(c);
        }
    }
    bt(0, 0, "");
    cout << full_best;



    return 0;
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
5
AAAAA
AAAAA
AAAAA
AAAAA
...

correct output
AAAAAAAAB

user output
AAAAAAAAB

Test 2

Group: 1

Verdict: ACCEPTED

input
5
ABABA
BABAB
ABABA
BABAB
...

correct output
ABABABABA

user output
ABABABABA

Test 3

Group: 1

Verdict: ACCEPTED

input
5
WRYIU
TWLKH
UJMJC
GRDJW
...

correct output
WRWJMDJWK

user output
WRWJMDJWK

Test 4

Group: 1

Verdict: ACCEPTED

input
5
RUEAE
ZYHHW
KDBPD
DXREW
...

correct output
RUEAEWDWX

user output
RUEAEWDWX

Test 5

Group: 1

Verdict: ACCEPTED

input
5
SRGYR
MYDOB
GNOVM
SZOZK
...

correct output
SMGNOOLTU

user output
SMGNOOLTU

Test 6

Group: 2

Verdict:

input
100
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

user output
(empty)

Test 7

Group: 2

Verdict:

input
100
ABABABABABABABABABABABABABABAB...

correct output
ABABABABABABABABABABABABABABAB...

user output
(empty)

Test 8

Group: 2

Verdict: ACCEPTED

input
100
FWOVNYKNMMQCNHJGUYPNEDXGVVGONC...

correct output
FWDBDECKBHKIACOVUCJGDJOHAYIBHO...

user output
FWDBDECKBHKIACOVUCJGDJOHAYIBHO...
Truncated

Test 9

Group: 2

Verdict: ACCEPTED

input
100
ETGCJABWKMAAEOQXWFFYMDJBMNKMQK...

correct output
EAARGLBRLHCDHHBPABHDAJBEEBHQBE...

user output
EAARGLBRLHCDHHBPABHDAJBEEBHQBE...
Truncated

Test 10

Group: 2

Verdict: ACCEPTED

input
100
GNWMLJNHSBAADUFCSGIZMWHZTVDHNR...

correct output
GEGOFRDKBNLLEUOPOEQCEFMTKANLNC...

user output
GEGOFRDKBNLLEUOPOEQCEFMTKANLNC...
Truncated

Test 11

Group: 3

Verdict:

input
500
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

correct output
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA...

user output
(empty)

Test 12

Group: 3

Verdict:

input
500
ABABABABABABABABABABABABABABAB...

correct output
ABABABABABABABABABABABABABABAB...

user output
(empty)

Test 13

Group: 3

Verdict:

input
500
HGADXTSFXYIEMDWMFIVQGHTACFUPYI...

correct output
HGADEJOGAKPJCRAHTABRSDLAVGBFAG...

user output
(empty)

Test 14

Group: 3

Verdict:

input
500
SBLNMAZESQVGWAPZYHQJMQTNGMEZWS...

correct output
SBLCAMDHILGIDRCIDUNMMAHFYCENOS...

user output
(empty)

Test 15

Group: 3

Verdict:

input
500
AOXYXRYFWPYWQDPWXQITLHQQUAYZAJ...

correct output
AOJLDOAPBGEKSGCNKBUMKAJCCWCOOD...

user output
(empty)