CSES - Datatähti 2023 loppu - Results
Submission details
Task:Ruudukko
Sender:Mahtimursu
Submission time:2023-01-21 15:31:30 +0200
Language:C++17
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED11
#2ACCEPTED25
#3ACCEPTED64
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.00 s2, 3details
#18ACCEPTED0.00 s2, 3details
#19ACCEPTED0.00 s2, 3details
#20ACCEPTED0.00 s2, 3details
#21ACCEPTED0.00 s2, 3details
#22ACCEPTED0.00 s2, 3details
#23ACCEPTED0.01 s2, 3details
#24ACCEPTED0.00 s2, 3details
#25ACCEPTED0.04 s3details
#26ACCEPTED0.04 s3details
#27ACCEPTED0.04 s3details
#28ACCEPTED0.04 s3details
#29ACCEPTED0.04 s3details
#30ACCEPTED0.04 s3details
#31ACCEPTED0.04 s3details
#32ACCEPTED0.04 s3details
#33ACCEPTED0.04 s3details
#34ACCEPTED0.04 s3details
#35ACCEPTED0.05 s3details
#36ACCEPTED0.04 s3details

Code

#include <bits/stdc++.h>

using namespace std;

using ll = long long;

void one(int n) {
    for (int i = 0; i < n; ++i) {
        cout << ".\n";
    }
    exit(0);
}

void two(int n) {
    for (int i = 0; i < n; ++i) {
        if (i % 2 == 0)
            cout << "..\n";
        else 
            cout << ".#\n";
    }
    exit(0);
}

void three(int n) {
    cout << "...\n";
    for (int i = 1; i < n; ++i) {
        if (i % 2 == 0)
            cout << "...\n";
        else
            cout << "#.#\n";
    }
    exit(0);
}

string ans[1010];
string block[] = {
    "..#.",
    ".#..",
    "...#",
    ".#..",
    "..#.",
    "#..#",
};

void four(int n) {
    int md = n % 6;

    ans[0] = "#..#";
    for (int i = 0; i < n / 6 + 1; ++i) {
        for (int j = 0; j < 6; ++j) {
            ans[i * 6 + 1 + j] = block[j];
            if (i % 2 == 1) {
                reverse(ans[i * 6 + 1 + j].begin(), ans[i * 6 + 1 + j].end());
            }
        }
    }

    if (md == 2) {
        if (n == 2 || ans[n - 3][2] == '#')
            ans[n - 2] = ".#.#";
        else
            ans[n - 2] = "#.#.";
        ans[n - 1] = "....";
    } else if (md == 3) {
        if (ans[n - 1][1] == '#')
            ans[n-1] = "#...";
        else
            ans[n-1] = "...#";
    }

    for (int i = 0; i < n; ++i) {
        cout << ans[i] << "\n";
    }
}

void calc(int n, int m) {
    int st = 0;
    if (n % 6 == 1 || n % 6 == 4) {
        st = 1;
    }

    for (int i = st; i < n + st; ++i) {
        for (int j = 0; j < m; ++j) {
            if (j == 0) {
                if (i % 6 == 4) {
                    cout << "#";
                } else 
                    cout << ".";
                continue;
            }
            if (i % 6 == 0 && j % 2 == 1) {
                cout << "#";
            } else if (i % 6 == 2 && j % 2 == 1) {
                cout << "#";
            } else if (i % 6 == 3 && j % 2 == 0) {
                cout << "#";
            } else if (i % 6 == 5 && j % 2 == 0) {
                cout << "#";
            } else {
                cout << ".";
            }
        }
        cout << "\n";
    }
}

int main() {
    int n, m;
    cin >> n >> m;

    // 0, 1, 2, 3, 5 ok
    if (n > 1 && m > 1) {
        calc(n, m);
        return 0;
    }

    if (m == 1) one(n);
    if (m == 2) two(n);
    if (m == 3) three(n);
    if (m == 4) four(n);

    return 0;
}

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: ACCEPTED

input
999 995

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

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

Test 26

Group: 3

Verdict: ACCEPTED

input
999 996

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

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

Test 27

Group: 3

Verdict: ACCEPTED

input
999 997

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

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

Test 28

Group: 3

Verdict: ACCEPTED

input
999 998

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

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

Test 29

Group: 3

Verdict: ACCEPTED

input
999 999

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

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

Test 30

Group: 3

Verdict: ACCEPTED

input
999 1000

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

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

Test 31

Group: 3

Verdict: ACCEPTED

input
1000 995

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

user output
.................................

Test 32

Group: 3

Verdict: ACCEPTED

input
1000 996

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

user output
.................................

Test 33

Group: 3

Verdict: ACCEPTED

input
1000 997

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

user output
.................................

Test 34

Group: 3

Verdict: ACCEPTED

input
1000 998

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

user output
.................................

Test 35

Group: 3

Verdict: ACCEPTED

input
1000 999

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

user output
.................................

Test 36

Group: 3

Verdict: ACCEPTED

input
1000 1000

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

user output
.................................