CSES - Datatähti 2020 loppu - Results
Submission details
Task:Aliruudukot
Sender:Pauli Kauro
Submission time:2020-02-09 15:22:41 +0200
Language:C++ (C++11)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1, 2, 3details
#20.01 s1, 2, 3details
#30.01 s1, 2, 3details
#40.01 s1, 2, 3details
#50.01 s1, 2, 3details
#60.01 s1, 2, 3details
#70.01 s1, 2, 3details
#80.01 s1, 2, 3details
#90.01 s1, 2, 3details
#100.01 s1, 2, 3details
#110.01 s1, 2, 3details
#120.01 s1, 2, 3details
#130.01 s1, 2, 3details
#140.01 s1, 2, 3details
#150.01 s1, 2, 3details
#160.01 s1, 2, 3details
#170.01 s1, 2, 3details
#180.01 s1, 2, 3details
#190.01 s1, 2, 3details
#200.01 s1, 2, 3details
#210.01 s1, 2, 3details
#220.01 s1, 2, 3details
#230.01 s1, 2, 3details
#240.01 s1, 2, 3details
#250.01 s1, 2, 3details
#260.01 s1, 2, 3details
#27ACCEPTED0.01 s2, 3details
#280.01 s2, 3details
#290.01 s2, 3details
#300.01 s2, 3details
#310.01 s2, 3details
#320.01 s2, 3details
#330.01 s2, 3details
#340.01 s2, 3details
#350.01 s2, 3details
#360.01 s2, 3details
#370.01 s2, 3details
#380.01 s2, 3details
#390.01 s2, 3details
#400.01 s2, 3details
#410.01 s2, 3details
#420.01 s2, 3details
#430.01 s2, 3details
#440.01 s2, 3details
#450.01 s2, 3details
#460.01 s2, 3details
#470.01 s2, 3details
#480.01 s2, 3details
#490.01 s2, 3details
#500.01 s2, 3details
#510.01 s2, 3details
#520.01 s2, 3details
#53ACCEPTED0.06 s3details
#54ACCEPTED0.06 s3details
#550.06 s3details
#560.06 s3details
#570.06 s3details
#580.06 s3details
#590.06 s3details
#600.06 s3details
#610.06 s3details
#620.06 s3details
#630.06 s3details
#640.06 s3details
#650.06 s3details
#660.06 s3details
#670.06 s3details
#680.06 s3details
#690.06 s3details
#700.06 s3details
#710.06 s3details
#720.06 s3details
#730.06 s3details
#740.06 s3details
#750.06 s3details
#760.06 s3details
#770.06 s3details
#780.06 s3details

Code

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
constexpr int N = 1000, M = 1000;

int n, m;

char r[N][M];
// y, x

int memo[N][M];
ll hashh[N][M];

static inline ll mkhash(ll prev, char c) {
	return (prev << 5) + c;
}

int main() {
	cin >> n >> m;
	for (int y = 0; y < n; y++) {
		for (int x = 0; x < m; x++) {
			cin >> r[y][x];
			r[y][x] -= 'A';
		}
	}
	memo[0][0] = 1;
	hashh[0][0] = r[0][0];

	// ylareuna
	for (int x = 1; x < m; x++) {
		memo[0][x] = x + 1;
		hashh[0][x] = mkhash(hashh[0][x - 1], r[0][x]);
	}
	// vasen laita
	for (int y = 1; y < n; y++) {
		memo[y][0] = y + 1;
		hashh[y][0] = mkhash(hashh[y - 1][0], r[y][0]);
	}

	for (int y = 1; y < n; y++) {
		for (int x = 1; x < m; x++) {
			// ruutuun paasee kahta kautta: ylapuolelta, vasemmalta
			if (hashh[y - 1][x] != hashh[y][x - 1]) {
				// ei ole sama reitti
				hashh[y][x] = r[y][x];
				memo[y][x] = 1;
				continue;
			}
			// sama reitti
			hashh[y][x] = mkhash(hashh[y][x - 1], r[y][x]);
			// edellinen + vaaka + pysty + 1
			memo[y][x] = memo[y - 1][x - 1] + x + y + 1;
		}
	}

	ll ans = 1;
	for (int y = 0; y < n; y++) {
		for (int x = 0; x < m; x++) {
			ans = max(ans, static_cast<ll>(memo[y][x]));
		}
	}
	cout << ans << endl;
}

Test details

Test 1

Group: 1, 2, 3

Verdict: ACCEPTED

input
10 10
ABCDEFGHIJ
BCDEFGHIJK
CDEFGHIJKL
DEFGHIJKLM
...

correct output
100

user output
100

Test 2

Group: 1, 2, 3

Verdict:

input
10 10
ABCDEFGHPJ
BCDEFGHIJK
CDEFGHIJKL
DTFGHIJKLM
...

correct output
72

user output
80

Test 3

Group: 1, 2, 3

Verdict:

input
10 10
ABCDEFGHIJ
BCDEFGHIJK
CDEFGHIJKL
PEFGHJJKLM
...

correct output
40

user output
49

Test 4

Group: 1, 2, 3

Verdict:

input
10 10
ABCDEFGHIJ
BCDEFGHIJK
CDEFGNIJKY
DEFGHIJKLM
...

correct output
30

user output
37

Test 5

Group: 1, 2, 3

Verdict:

input
10 10
ABCDEFGHIJ
BCDEFGJIJK
CDEFOHIJKL
DEFGHIJKLM
...

correct output
24

user output
56

Test 6

Group: 1, 2, 3

Verdict:

input
10 10
SBCDEFGHIJ
BCDEFGCIJK
CXEFGHIJKL
DEDGHIKKWM
...

correct output
20

user output
50

Test 7

Group: 1, 2, 3

Verdict:

input
10 10
ABFDEFGHIJ
BCDEFGHOJK
CDEFGNXJKL
DPFGHIJKLM
...

correct output
42

user output
52

Test 8

Group: 1, 2, 3

Verdict:

input
10 10
ABQDEFGHIA
BCDEFGHIHK
CDEFGHIJKL
DEFGHIAKGM
...

correct output
30

user output
49

Test 9

Group: 1, 2, 3

Verdict:

input
10 10
AYCDEFGHIJ
BCDEFGHVJK
CDEFGQIJKC
DEFGHKPKLM
...

correct output
32

user output
40

Test 10

Group: 1, 2, 3

Verdict:

input
10 10
ABCREAGHQJ
NCDEFGHIJK
CDEFXHIUKL
DEFGHIJKLM
...

correct output
20

user output
52

Test 11

Group: 1, 2, 3

Verdict:

input
10 10
ABCDEFGSBJ
BRDEFGHIJK
CYEFGPIPKL
DEFGHIJASM
...

correct output
16

user output
49

Test 12

Group: 1, 2, 3

Verdict:

input
10 10
ABCBGFGHIJ
BCDEFOHILK
CDEFGUIJKL
DEFGHIJKLT
...

correct output
20

user output
40

Test 13

Group: 1, 2, 3

Verdict:

input
10 10
ABCFEFGHIJ
BCDQFGYIJK
COEFGHIZKL
JELGHIJZLM
...

correct output
20

user output
31

Test 14

Group: 1, 2, 3

Verdict:

input
10 10
ABCPNFGCIJ
ICRQFGFIJK
PDEFGHIJKL
DQFGHIJKVM
...

correct output
21

user output
46

Test 15

Group: 1, 2, 3

Verdict:

input
10 10
AMCJEFEIXJ
BYDEFGHIBI
CDEFGHIDKL
DEFQXQJKYM
...

correct output
15

user output
57

Test 16

Group: 1, 2, 3

Verdict:

input
10 10
XBCDUFGHNJ
BCDEFGHIJK
BDEFGHIJKL
DEKGHIJKLM
...

correct output
24

user output
25

Test 17

Group: 1, 2, 3

Verdict:

input
10 10
ARCDEFMHIJ
BCDEHGSNJK
CVEFGHIJZL
DEZRHIJSDM
...

correct output
16

user output
61

Test 18

Group: 1, 2, 3

Verdict:

input
10 10
AGCDEOGHIJ
BADEJGHIJP
CDURGHIJKL
VELGXIJKLM
...

correct output
32

user output
45

Test 19

Group: 1, 2, 3

Verdict:

input
10 10
ABCKEFGRIJ
RWBECVHGIK
COEFKHIJKL
DEVZHXBKLM
...

correct output
12

user output
33

Test 20

Group: 1, 2, 3

Verdict:

input
10 10
ABDDQFGFIJ
BXJEFKHIKK
TDSFVHILKL
HEFOHKQPLM
...

correct output
10

user output
43

Test 21

Group: 1, 2, 3

Verdict:

input
10 10
LBCDEFGUIJ
BCDEFGHIJK
CDZJGBIJKL
DHFGHNJXLM
...

correct output
14

user output
24

Test 22

Group: 1, 2, 3

Verdict:

input
10 10
BJCDEFGHIO
MLHEDOHIJH
CDEFWWIJKL
DEFNHIEKLM
...

correct output
10

user output
37

Test 23

Group: 1, 2, 3

Verdict:

input
10 10
ABCDEFMHIJ
WCDEFLHIJK
CDXACHIJEL
DENPVIJVAU
...

correct output
10

user output
25

Test 24

Group: 1, 2, 3

Verdict:

input
10 10
YBKDEFMRJF
BRDEFAHIDK
PDOFGUHJKL
NEFGHQJTHM
...

correct output
12

user output
33

Test 25

Group: 1, 2, 3

Verdict:

input
10 10
OBODEFGRBJ
FCDEFGHIQK
CDAFGHIJKY
DEFKHIHKLM
...

correct output
12

user output
28

Test 26

Group: 1, 2, 3

Verdict:

input
10 10
LBQDEPGHIJ
BCOEODHIJK
CHEUGQIJKL
EEHGQIJBWM
...

correct output
12

user output
30

Test 27

Group: 2, 3

Verdict: ACCEPTED

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
10000

user output
10000

Test 28

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
6000

user output
7900

Test 29

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
3600

user output
3339

Test 30

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
5700

user output
6068

Test 31

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
4400

user output
3700

Test 32

Group: 2, 3

Verdict:

input
100 100
ABCQEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
3430

user output
2016

Test 33

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
3871

user output
5104

Test 34

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
3036

user output
2513

Test 35

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
3116

user output
3556

Test 36

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
2142

user output
2209

Test 37

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMAOPQRSTUVWXYZABCD...

correct output
1920

user output
2005

Test 38

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
2205

user output
2397

Test 39

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIFKLMNOPQRSTUVWXYZABCD...

correct output
2520

user output
2228

Test 40

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
2655

user output
2629

Test 41

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
2244

user output
1905

Test 42

Group: 2, 3

Verdict:

input
100 100
ABCDEUGHIJKLMNOPQRSTUVWXYZABCD...

correct output
1872

user output
2221

Test 43

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
2278

user output
2005

Test 44

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
1500

user output
1574

Test 45

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
1890

user output
1821

Test 46

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
1734

user output
1899

Test 47

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
2448

user output
2719

Test 48

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHAJKLMNOPQRSTUVWXYZABCD...

correct output
1248

user output
1937

Test 49

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
1953

user output
2011

Test 50

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUNWXYZABCD...

correct output
1216

user output
2289

Test 51

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
1344

user output
1873

Test 52

Group: 2, 3

Verdict:

input
100 100
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
1422

user output
1981

Test 53

Group: 3

Verdict: ACCEPTED

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
1000000

user output
1000000

Test 54

Group: 3

Verdict: ACCEPTED

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
887000

user output
887000

Test 55

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
553532

user output
237000

Test 56

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
456765

user output
513930

Test 57

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
510000

user output
662688

Test 58

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
455413

user output
238760

Test 59

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
287300

user output
245000

Test 60

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
326616

user output
78642

Test 61

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
396240

user output
306176

Test 62

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
311022

user output
60291

Test 63

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
374946

user output
100880

Test 64

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
342454

user output
134244

Test 65

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
271911

user output
152014

Test 66

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
279000

user output
103332

Test 67

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
208096

user output
125000

Test 68

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
170914

user output
95000

Test 69

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
261508

user output
100062

Test 70

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
299757

user output
57781

Test 71

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
195250

user output
110376

Test 72

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
160638

user output
105777

Test 73

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
197340

user output
70000

Test 74

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
212000

user output
92025

Test 75

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
177184

user output
45825

Test 76

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
132534

user output
145250

Test 77

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
143868

user output
74630

Test 78

Group: 3

Verdict:

input
1000 1000
ABCDEFGHIJKLMNOPQRSTUVWXYZABCD...

correct output
114480

user output
95088