CSES - Datatähti 2023 loppu - Results
Submission details
Task:Ruudukko
Sender:andreibe
Submission time:2023-01-21 16:21:29 +0200
Language:C++11
Status:READY
Result:36
Feedback
groupverdictscore
#1ACCEPTED11
#2ACCEPTED25
#30
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1, 2, 3details
#2ACCEPTED0.00 s1, 2, 3details
#3ACCEPTED0.00 s1, 2, 3details
#4ACCEPTED0.00 s1, 2, 3details
#5ACCEPTED0.00 s1, 2, 3details
#6ACCEPTED0.00 s1, 2, 3details
#7ACCEPTED0.00 s1, 2, 3details
#8ACCEPTED0.00 s1, 2, 3details
#9ACCEPTED0.00 s1, 2, 3details
#10ACCEPTED0.00 s1, 2, 3details
#11ACCEPTED0.00 s1, 2, 3details
#12ACCEPTED0.00 s1, 2, 3details
#13ACCEPTED0.00 s1, 2, 3details
#14ACCEPTED0.00 s1, 2, 3details
#15ACCEPTED0.00 s1, 2, 3details
#16ACCEPTED0.00 s1, 2, 3details
#17ACCEPTED0.01 s2, 3details
#18ACCEPTED0.01 s2, 3details
#19ACCEPTED0.01 s2, 3details
#20ACCEPTED0.01 s2, 3details
#21ACCEPTED0.01 s2, 3details
#22ACCEPTED0.01 s2, 3details
#23ACCEPTED0.01 s2, 3details
#24ACCEPTED0.01 s2, 3details
#250.00 s3details
#260.00 s3details
#270.00 s3details
#280.00 s3details
#290.00 s3details
#300.00 s3details
#310.00 s3details
#320.00 s3details
#330.00 s3details
#340.00 s3details
#350.00 s3details
#360.00 s3details

Compiler report

input/code.cpp: In function 'bool tarkistus()':
input/code.cpp:71:1: warning: control reaches end of non-void function [-Wreturn-type]
   71 | }
      | ^

Code

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair<int,int> P;
#define REDIR ifstream f("input.txt"); cin.rdbuf(f.rdbuf());
int n,m;
int t[1010][4];

int z[4][4];
bool eiole(int y, int x) {
    if (y < 0 || x < 0 || y >= n || x >= m) {
        return true;
    }
    return t[y][x] ? false : true;
}
void print() {
    for (int y = 0; y < n; y++)
    {
        for (int x = 0; x < m; x++)
        {
            cout << (t[y][x] ? "#" : ".");
        }
        cout << endl;
    }
    
}
int syvyys(int y, int x, int y2, int x2) {
    
    if (y < 0 || x < 0 || y >= n || x >= m || t[y][x]) {
        return 0;
    }
    if (z[y][x]) return -99;
    z[y][x] = 1;
    int total = 1;
    if (y+1 != y2 || x != x2) total += syvyys(y+1,x, y,x);
    if (y-1 != y2 || x != x2) total += syvyys(y-1,x, y,x);
    if (y != y2 || x+1 != x2) total += syvyys(y,x+1, y,x);
    if (y != y2 || x-1 != x2) total += syvyys(y,x-1, y,x);
    return total;
}
bool tarkistus() {
    int total = 0;
        for (int y = 0; y < n; y++)
    {
        for (int x = 0; x < m; x++)
        {
            z[y][x] = 0;
            if (!t[y][x]) total++;
        }
    }
    for (int y = 0; y < n; y++)
    {
        for (int x = 0; x < m; x++)
        {
            if (!t[y][x]) {
                int maara = syvyys(y,x,-1,-1);
                //cout << maara << " vs " << total << endl;
                //print();
                if (maara != total) return false;

                //cout << "VALMIS!!!";
                print();
                exit(0);
            }
        }
        
    }
    
}

void haku(int y, int x, bool yes) {
    if (y == n-1 && x == m-1) {
        //cout << "MAN!";
        tarkistus();
        return;
    }
    if (yes) {
        if (eiole(y-1,x) && eiole(y+1,x) && eiole(y,x-1) && eiole(y,x+1)) {
            t[y][x] = 1;
        }
    }
    if (x+1==m) {
        haku(y+1, 0, false);
        haku(y+1, 0, true);
    } else {
        haku(y, x+1, false);
        haku(y, x+1, true);
    }
    t[y][x] = 0;
}
void m2() {
    bool left = true;
    for (int y = 0; y < n; y+=2)
    {
        if (left) t[y][0] = 1;
        else t[y][1] = 1;
        left = !left;
    }
}
void m3() {
    bool left = true;
    for (int y = 0; y < n; y++)
    {
        if (left) t[y][0] = 1;
        else t[y][2] = 1;
        left = !left;
    }
}
void m4() {
    bool left = n % 2 == 0 ? false : true;
    for (int y = 0; y < n-1; y++)
    {
        if (left) t[y][1] = 1;
        else t[y][2] = 1;
        left = !left;
    }
    if (left) t[n-1][0] = 1;
    else t[n-1][3] = 1;
}
int main() {
    //REDIR;
    cin >> n >> m;
    if (n <= 4 && m <= 4) {
        haku(0,0,false);
        haku(0,0,true);
    }
    else {
        if (m == 1) {
            print();
        }
        if (m == 2) {
            m2();
            print();
        }
        if (m == 3) {
            m3();
            print();
        }
        if (m == 4) {
            m4();
            print();
        }
    }
}

Test details

Test 1

Group: 1, 2, 3

Verdict: ACCEPTED

input
1 1

correct output
.

user output
.

Test 2

Group: 1, 2, 3

Verdict: ACCEPTED

input
1 2

correct output
..

user output
..

Test 3

Group: 1, 2, 3

Verdict: ACCEPTED

input
1 3

correct output
...

user output
...

Test 4

Group: 1, 2, 3

Verdict: ACCEPTED

input
1 4

correct output
....

user output
....

Test 5

Group: 1, 2, 3

Verdict: ACCEPTED

input
2 1

correct output
.
.

user output
.
.

Test 6

Group: 1, 2, 3

Verdict: ACCEPTED

input
2 2

correct output
.#
..

user output
..
#.

Test 7

Group: 1, 2, 3

Verdict: ACCEPTED

input
2 3

correct output
.#.
...

user output
...
.#.

Test 8

Group: 1, 2, 3

Verdict: ACCEPTED

input
2 4

correct output
.#.#
....

user output
....
#.#.

Test 9

Group: 1, 2, 3

Verdict: ACCEPTED

input
3 1

correct output
.
.
.

user output
.
.
.

Test 10

Group: 1, 2, 3

Verdict: ACCEPTED

input
3 2

correct output
.#
..
.#

user output
..
.#
..

Test 11

Group: 1, 2, 3

Verdict: ACCEPTED

input
3 3

correct output
.#.
...
.#.

user output
...
.#.
#..

Test 12

Group: 1, 2, 3

Verdict: ACCEPTED

input
3 4

correct output
.#.#
....
.#.#

user output
....
.#.#
#...

Test 13

Group: 1, 2, 3

Verdict: ACCEPTED

input
4 1

correct output
.
.
.
.

user output
.
.
.
.

Test 14

Group: 1, 2, 3

Verdict: ACCEPTED

input
4 2

correct output
..
.#
..
#.

user output
..
.#
..
#.

Test 15

Group: 1, 2, 3

Verdict: ACCEPTED

input
4 3

correct output
...
.#.
..#
#..

user output
...
.#.
..#
#..

Test 16

Group: 1, 2, 3

Verdict: ACCEPTED

input
4 4

correct output
....
.#.#
..#.
#...

user output
....
.#.#
..#.
#...

Test 17

Group: 2, 3

Verdict: ACCEPTED

input
999 1

correct output
.
.
.
.
.
...

user output
.
.
.
.
.
...

Test 18

Group: 2, 3

Verdict: ACCEPTED

input
999 2

correct output
.#
..
.#
..
#.
...

user output
#.
..
.#
..
#.
...

Test 19

Group: 2, 3

Verdict: ACCEPTED

input
999 3

correct output
.#.
...
.#.
..#
#..
...

user output
#..
..#
#..
..#
#..
...

Test 20

Group: 2, 3

Verdict: ACCEPTED

input
999 4

correct output
.#.#
....
.#.#
..#.
#...
...

user output
.#..
..#.
.#..
..#.
.#..
...

Test 21

Group: 2, 3

Verdict: ACCEPTED

input
1000 1

correct output
.
.
.
.
.
...

user output
.
.
.
.
.
...

Test 22

Group: 2, 3

Verdict: ACCEPTED

input
1000 2

correct output
..
.#
..
#.
..
...

user output
#.
..
.#
..
#.
...

Test 23

Group: 2, 3

Verdict: ACCEPTED

input
1000 3

correct output
...
.#.
..#
#..
..#
...

user output
#..
..#
#..
..#
#..
...

Test 24

Group: 2, 3

Verdict: ACCEPTED

input
1000 4

correct output
....
.#.#
..#.
#...
..#.
...

user output
..#.
.#..
..#.
.#..
..#.
...

Test 25

Group: 3

Verdict:

input
999 995

correct output
.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#...

user output
(empty)

Test 26

Group: 3

Verdict:

input
999 996

correct output
.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#...

user output
(empty)

Test 27

Group: 3

Verdict:

input
999 997

correct output
.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#...

user output
(empty)

Test 28

Group: 3

Verdict:

input
999 998

correct output
.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#...

user output
(empty)

Test 29

Group: 3

Verdict:

input
999 999

correct output
.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#...

user output
(empty)

Test 30

Group: 3

Verdict:

input
999 1000

correct output
.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#...

user output
(empty)

Test 31

Group: 3

Verdict:

input
1000 995

correct output
.................................

user output
(empty)

Test 32

Group: 3

Verdict:

input
1000 996

correct output
.................................

user output
(empty)

Test 33

Group: 3

Verdict:

input
1000 997

correct output
.................................

user output
(empty)

Test 34

Group: 3

Verdict:

input
1000 998

correct output
.................................

user output
(empty)

Test 35

Group: 3

Verdict:

input
1000 999

correct output
.................................

user output
(empty)

Test 36

Group: 3

Verdict:

input
1000 1000

correct output
.................................

user output
(empty)