CSES - Putka Open 2020 – 1/5 - Results
Submission details
Task:Ruudukko
Sender:Guuber
Submission time:2020-09-05 01:38:33 +0300
Language:C++11
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.04 s1, 2, 3details
#20.04 s1, 2, 3details
#30.03 s1, 2, 3details
#40.03 s1, 2, 3details
#50.04 s1, 2, 3details
#60.04 s1, 2, 3details
#7ACCEPTED0.04 s2, 3details
#8ACCEPTED0.16 s2, 3details
#90.26 s2, 3details
#100.32 s2, 3details
#110.36 s2, 3details
#120.36 s2, 3details
#13ACCEPTED0.24 s3details
#14--3details
#15--3details
#16--3details
#17--3details
#18--3details

Code

#include<bits/stdc++.h>
using namespace std;

int ruudukkol[1000][1000];
set<int> ruudukko[1000][1000];
set<int> merg(set<int> a, set<int> b){
	set<int> c = {};
	for(auto u : a) c.insert(u);
	for(auto u : b) c.insert(u);
	return c;
}

set<int> kasv(set<int> a){
	set<int> c = {};
	for(auto u : a) c.insert(u+1);
	return c;
}
int main(){
	int n;
	cin >> n;
	for(int i = 0; i < n; i++){
		for(int j = 0; j < n; j++){
			char a;
			cin >> a;
			if(a == '.'){
				ruudukkol[i][j] = 0;
			}else ruudukkol[i][j] = 1;
		}
	}
	for(int i = 0; i < n; i++){
		for(int j = 0; j < n; j++){
			//cout << ruudukkol[i][j] << " ";
		}
		//cout << "\n";
	}
	for(int i = 0; i < n; i++){
		for(int j = 0; j < n; j++){
			if(i == 0){
				if(j == 0){
					if(ruudukkol[i][j] == 0){
						ruudukko[i][j] = {0};
					}else{
						ruudukko[i][j] = {1};
					}
				}else{
					if(ruudukkol[i][j] == 0){
						ruudukko[i][j] = ruudukko[i][j-1];
					}else{
						ruudukko[i][j] = kasv(ruudukko[i][j-1]);
						ruudukko[i][j].insert(0);
					}
				}
			}else{
				if(j == 0){
					if(ruudukkol[i][j] == 0){
						ruudukko[i][j] = ruudukko[i-1][j];
					}else{
						ruudukko[i][j] = kasv(ruudukko[i-1][j]);
						ruudukko[i][j].insert(0);
					}
				}else{
					if(ruudukkol[i][j] == 0){
						ruudukko[i][j] = merg(ruudukko[i-1][j], ruudukko[i][j-1]);
					}else{
						ruudukko[i][j] = kasv(merg(ruudukko[i-1][j], ruudukko[i][j-1]));
						ruudukko[i][j].insert(0);
					}
				}
			}
		}
	}
	for(int i = 0; i < n; i++){
		for(int j = 0; j < n; j++){
			//cout << ruudukko[i][j].size() << " ";
		}
		//cout << "\n";
	}
	cout << ruudukko[n-1][n-1].size() << "\n";
}

Test details

Test 1

Group: 1, 2, 3

Verdict: ACCEPTED

input
10
..........
..........
..........
..........
...

correct output
1

user output
1

Test 2

Group: 1, 2, 3

Verdict:

input
10
o.o.......
..........
.o...o.oo.
..o...o.oo
...

correct output
9

user output
11

Test 3

Group: 1, 2, 3

Verdict:

input
10
o......o..
oo.oo.....
oooo....oo
o.......oo
...

correct output
14

user output
16

Test 4

Group: 1, 2, 3

Verdict:

input
10
..ooooo.oo
.ooo.o..oo
.....ooo.o
ooo.ooo.oo
...

correct output
12

user output
17

Test 5

Group: 1, 2, 3

Verdict:

input
10
oooooooooo
ooo....ooo
.oo.oo.ooo
oooooooooo
...

correct output
10

user output
19

Test 6

Group: 1, 2, 3

Verdict:

input
10
oooooooooo
oooooooooo
oooooooooo
oooooooooo
...

correct output
1

user output
19

Test 7

Group: 2, 3

Verdict: ACCEPTED

input
100
.................................

correct output
1

user output
1

Test 8

Group: 2, 3

Verdict: ACCEPTED

input
100
.........o.....o.........o..o....

correct output
114

user output
114

Test 9

Group: 2, 3

Verdict:

input
100
oo..oo.oo..o...o..o.o..o.........

correct output
151

user output
162

Test 10

Group: 2, 3

Verdict:

input
100
o..o.ooo..oo.o.o.o..o.o..o..oo...

correct output
143

user output
187

Test 11

Group: 2, 3

Verdict:

input
100
oo..oooooooooooo.oooo.o.o.oooo...

correct output
115

user output
200

Test 12

Group: 2, 3

Verdict:

input
100
oooooooooooooooooooooooooooooo...

correct output
1

user output
199

Test 13

Group: 3

Verdict: ACCEPTED

input
1000
.................................

correct output
1

user output
1

Test 14

Group: 3

Verdict:

input
1000
o..........o...o...o...o.........

correct output
1121

user output
(empty)

Test 15

Group: 3

Verdict:

input
1000
.o.............o....o.o......o...

correct output
1583

user output
(empty)

Test 16

Group: 3

Verdict:

input
1000
oooooo.oooooo.....oooo..o...o....

correct output
1574

user output
(empty)

Test 17

Group: 3

Verdict:

input
1000
ooooo.oo.oooooooooo...o...oo.....

correct output
1147

user output
(empty)

Test 18

Group: 3

Verdict:

input
1000
oooooooooooooooooooooooooooooo...

correct output
1

user output
(empty)