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

Code

#include <bits/stdc++.h>

using namespace std;

const int N = 501;

struct Vec
{
public:
    int x;
    int y;
    Vec(int x, int y)
    {
        this->x = x;
        this->y = y;
    }
    Vec()
    {
        this->x = 0;
        this->y = 0;
    }
};

int n;
string m[N];
string r = "";
Vec v[N][N];

int main()
{
    cin>>n;
    string s;
    for(int i=0;i<n;i++)
    {
        cin>>s;
        m[i] = s;
    }

    n--;
    for(int x=n;x>=0;x--)
    {
        for(int y=n;y>=0;y--)
        {
            if(x==n && y==n) continue;
            else if(x==n)
            {
                v[x][y] = Vec(x,y+1);
            }
            else if(y==n)
            {
                v[x][y] = Vec(x+1,y);
            }
            else
            {
                Vec rpos = Vec(x,y+1);
                Vec dpos = Vec(x+1,y);
                while(rpos.x<=n && rpos.y<=n && dpos.x<=n && dpos.y<=n && m[rpos.x][rpos.y] == m[dpos.x][dpos.y])
                {
                    rpos = v[rpos.x][rpos.y];
                    dpos = v[dpos.x][dpos.y];
                }
                if(m[rpos.x][rpos.y] < m[dpos.x][dpos.y]) v[x][y] = Vec(x,y+1);
                else v[x][y] = Vec(x+1,y);
            }
        }
    }

    Vec vec = Vec(0,0);
    for(int i=0;i<n*2+1;i++)
    {
        cout<<m[vec.x][vec.y];
        vec = v[vec.x][vec.y];
    }
}

Test details

Test 1

Group: 1

Verdict:

input
5
AAAAA
AAAAA
AAAAA
AAAAA
...

correct output
AAAAAAAAB

user output
(empty)

Test 2

Group: 1

Verdict:

input
5
ABABA
BABAB
ABABA
BABAB
...

correct output
ABABABABA

user output
(empty)

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:

input
100
FWOVNYKNMMQCNHJGUYPNEDXGVVGONC...

correct output
FWDBDECKBHKIACOVUCJGDJOHAYIBHO...

user output
(empty)

Test 9

Group: 2

Verdict:

input
100
ETGCJABWKMAAEOQXWFFYMDJBMNKMQK...

correct output
EAARGLBRLHCDHHBPABHDAJBEEBHQBE...

user output
(empty)

Test 10

Group: 2

Verdict:

input
100
GNWMLJNHSBAADUFCSGIZMWHZTVDHNR...

correct output
GEGOFRDKBNLLEUOPOEQCEFMTKANLNC...

user output
(empty)

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)