CSES - Datatähti 2023 loppu - Results
Submission details
Task:Ruudukko
Sender:a256
Submission time:2023-01-21 16:56:23 +0200
Language:C++ (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.00 s2, 3details
#18ACCEPTED0.01 s2, 3details
#19ACCEPTED0.01 s2, 3details
#20ACCEPTED0.01 s2, 3details
#21ACCEPTED0.00 s2, 3details
#22ACCEPTED0.00 s2, 3details
#23ACCEPTED0.01 s2, 3details
#24ACCEPTED0.01 s2, 3details
#25ACCEPTED0.05 s3details
#260.05 s3details
#27ACCEPTED0.05 s3details
#28ACCEPTED0.05 s3details
#29ACCEPTED0.05 s3details
#30ACCEPTED0.05 s3details
#31ACCEPTED0.05 s3details
#320.05 s3details
#33ACCEPTED0.05 s3details
#34ACCEPTED0.05 s3details
#350.05 s3details
#36ACCEPTED0.05 s3details

Compiler report

input/code.cpp: In function 'void snake()':
input/code.cpp:84:21: warning: unused variable 's' [-Wunused-variable]
   84 |                 int s = 0;
      |                     ^

Code

#include <bits/stdc++.h>
using namespace std;
#define F first
#define S second
typedef long long ll;

array<string,4> manr[4][4];

void man(int n, int m){
	manr[0][0]  [0] = ".";

	manr[1][0]  [0] = ".";
	manr[1][0]  [1] = ".";

	manr[2][0]  [0] = ".";
	manr[2][0]  [1] = ".";
	manr[2][0]  [2] = ".";

	manr[3][0]  [0] = ".";
	manr[3][0]  [1] = ".";
	manr[3][0]  [2] = ".";
	manr[3][0]  [3] = ".";

	manr[1][1]  [0] = ".#";
	manr[1][1]  [1] = "..";

	manr[2][1]  [0] = "..";
	manr[2][1]  [1] = "#.";
	manr[2][1]  [2] = "..";

	manr[3][1]  [0] = "..";
	manr[3][1]  [1] = "#.";
	manr[3][1]  [2] = "..";
	manr[3][1]  [3] = "#.";

	manr[2][2]  [0] = "..#";
	manr[2][2]  [1] = ".#.";
	manr[2][2]  [2] = "...";

	manr[2][2]  [0] = "..#";
	manr[2][2]  [1] = ".#.";
	manr[2][2]  [2] = "...";

	manr[3][2]  [0] = "..#";
	manr[3][2]  [1] = ".#.";
	manr[3][2]  [2] = "...";
	manr[3][2]  [3] = ".#.";

	manr[3][3]  [0] = "..#.";
	manr[3][3]  [1] = ".#..";
	manr[3][3]  [2] = "..#.";
	manr[3][3]  [3] = "#...";

	--n; --m;

	if(n >= m){
		for(int i=0; i<=n; ++i){
			cout << manr[n][m][i] << '\n';
		}
	} else {
		for(int i=0; i<=n; ++i){
			for(int j=0; j<=m; ++j){
				cout << manr[m][n] [j][i];
			}
			cout << '\n';
		}
	}
}

int n,m;
char v[1100][1100];

void snake(){
	int x = 2;
	int l = n-1;
	if(m == 3) l += 1;
	for(int y = 0; y<l; ++y){
		v[y][x] = '#';
		if(x == 2)
			x = 1;
		else x = 2;
	}
	if(m == 3){
		int s = 0;
		for(int y = 0; y < n; y += 4){
			v[y][2] = '.';
		}
		if(v[n-1][1] == '#' && v[n-2][2] == '#'){
			v[n-1][1] = '.';
		}
		if(v[n-1][1] == '.' && v[n-2][1] == '.')
			v[n-1][0] = '#';
	} else {
		if(!(n & 1))
			v[n-1][0] = '#';
		else v[n-1][3] = '#';
	}
}

void siksak(int y, int x, int s){
	for(; y < n-1; ++y){
		v[y][x+s] = '#';
		s = !s;
	}
}

void solve(){
	int s = 1;
	for(int i = 1; i < m; i += 3){
		siksak(0, i, s);
		s = !s;
	}
	int x;
	if(n & 1)
		x = 3;
	else 
		x = 0;
	for(; x < m; x += 6)
		v[n-1][x] = '#';

	if(m % 3 == 0){
		int alku;
		if(m & 1) alku = 2;
		else alku = 1;
		for(int y = alku; y < n; y += 4){
			v[y][m-1] = '.';
		}
	}
}

int main(){
	cin >> n >> m;
	if(n < 5 && m < 5){
		man(n,m);
		return 0;
	}
	memset(v,'.',sizeof v);
	if(m < 5)
			snake();
	else if(n < 5){
			int t = n; n = m; m = t;
			snake();
			for(int i = 0; i < m; ++i){
				for(int j = 0; j<n; ++j){
					cout << v[j][i];
				}
				cout << '\n';
			}
			return 0;
	} else {
			solve();
			for(int y = 0; y < n-1; ++y){
				for(int x = 0; x<m-1; ++x){
					int a = v[y][x];
					int b = v[y][x+1];
					int c = v[y+1][x];
					int d = v[y+1][x+1];
					if(a == b && b == c && c == d){
						v[y][x] = '#';
					}
				}
			}
	}
	for(int i = 0; i < n; ++i){
		for(int j = 0; j<m; ++j){
			cout << v[i][j];
		}
		cout << '\n';
	}
}

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
.
.
.
.
.
...
Truncated

Test 18

Group: 2, 3

Verdict: ACCEPTED

input
999 2

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

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

Test 19

Group: 2, 3

Verdict: ACCEPTED

input
999 3

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

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

Test 20

Group: 2, 3

Verdict: ACCEPTED

input
999 4

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

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

Test 21

Group: 2, 3

Verdict: ACCEPTED

input
1000 1

correct output
.
.
.
.
.
...

user output
.
.
.
.
.
...
Truncated

Test 22

Group: 2, 3

Verdict: ACCEPTED

input
1000 2

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

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

Test 23

Group: 2, 3

Verdict: ACCEPTED

input
1000 3

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

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

Test 24

Group: 2, 3

Verdict: ACCEPTED

input
1000 4

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

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

Test 25

Group: 3

Verdict: ACCEPTED

input
999 995

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

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

Test 26

Group: 3

Verdict:

input
999 996

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

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

Test 27

Group: 3

Verdict: ACCEPTED

input
999 997

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

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

Test 28

Group: 3

Verdict: ACCEPTED

input
999 998

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

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

Test 29

Group: 3

Verdict: ACCEPTED

input
999 999

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

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

Test 30

Group: 3

Verdict: ACCEPTED

input
999 1000

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

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

Test 31

Group: 3

Verdict: ACCEPTED

input
1000 995

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

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

Test 32

Group: 3

Verdict:

input
1000 996

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

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

Test 33

Group: 3

Verdict: ACCEPTED

input
1000 997

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

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

Test 34

Group: 3

Verdict: ACCEPTED

input
1000 998

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

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

Test 35

Group: 3

Verdict:

input
1000 999

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

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

Test 36

Group: 3

Verdict: ACCEPTED

input
1000 1000

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

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