CSES - IZhO 2017, day 2 - Results
Submission details
Task:Bomb
Sender:Lieska
Submission time:2019-02-09 16:12:49 +0200
Language:C++
Status:READY
Result:22
Feedback
groupverdictscore
#1ACCEPTED1
#2ACCEPTED1
#3ACCEPTED1
#4ACCEPTED1
#5ACCEPTED1
#6ACCEPTED1
#7ACCEPTED1
#80
#90
#100
#110
#120
#13ACCEPTED1
#140
#150
#160
#170
#180
#190
#200
#210
#220
#230
#240
#250
#26ACCEPTED1
#27ACCEPTED1
#280
#290
#300
#310
#320
#330
#340
#350
#36ACCEPTED1
#370
#38ACCEPTED1
#390
#400
#41ACCEPTED1
#420
#43ACCEPTED1
#440
#450
#46ACCEPTED1
#470
#480
#49ACCEPTED1
#500
#510
#520
#530
#540
#550
#56ACCEPTED1
#570
#580
#590
#60ACCEPTED1
#61ACCEPTED1
#62ACCEPTED1
#63ACCEPTED1
#64ACCEPTED1
#650
#660
#670
#680
#690
#700
#710
#720
#730
#740
#750
#760
#770
#780
#790
#800
#810
#820
#830
#840
#850
#860
#870
#880
#890
#900
#910
#920
#930
#940
#950
#960
#970
#980
#990
#1000
Test results
testverdicttimegroup
#1ACCEPTED0.03 s1details
#2ACCEPTED0.01 s2details
#3ACCEPTED0.03 s3details
#4ACCEPTED0.02 s4details
#5ACCEPTED0.02 s5details
#6ACCEPTED0.01 s6details
#7ACCEPTED0.02 s7details
#80.02 s8details
#90.01 s9details
#100.03 s10details
#110.02 s11details
#120.02 s12details
#13ACCEPTED0.02 s13details
#140.02 s14details
#150.02 s15details
#160.01 s16details
#170.02 s17details
#180.01 s18details
#190.02 s19details
#200.02 s20details
#210.02 s21details
#220.02 s22details
#230.03 s23details
#240.02 s24details
#250.02 s25details
#26ACCEPTED0.01 s26details
#27ACCEPTED0.03 s27details
#280.03 s28details
#290.02 s29details
#300.04 s30details
#310.03 s31details
#320.04 s32details
#330.04 s33details
#340.03 s34details
#350.04 s35details
#36ACCEPTED0.05 s36details
#370.01 s37details
#38ACCEPTED0.51 s38details
#390.01 s39details
#400.08 s40details
#41ACCEPTED0.01 s41details
#420.03 s42details
#43ACCEPTED0.50 s43details
#440.04 s44details
#450.50 s45details
#46ACCEPTED0.50 s46details
#470.51 s47details
#480.50 s48details
#49ACCEPTED0.53 s49details
#500.49 s50details
#510.51 s51details
#520.51 s52details
#530.52 s53details
#540.51 s54details
#550.49 s55details
#56ACCEPTED0.52 s56details
#570.49 s57details
#580.49 s58details
#590.49 s59details
#60ACCEPTED0.49 s60details
#61ACCEPTED0.50 s61details
#62ACCEPTED0.51 s62details
#63ACCEPTED0.51 s63details
#64ACCEPTED0.50 s64details
#650.52 s65details
#660.49 s66details
#670.51 s67details
#680.51 s68details
#690.49 s69details
#700.33 s70details
#710.49 s71details
#720.49 s72details
#730.51 s73details
#740.49 s74details
#750.49 s75details
#760.51 s76details
#770.49 s77details
#780.50 s78details
#790.49 s79details
#800.49 s80details
#810.52 s81details
#820.50 s82details
#830.49 s83details
#840.49 s84details
#850.49 s85details
#860.51 s86details
#870.49 s87details
#880.49 s88details
#890.52 s89details
#900.33 s90details
#910.49 s91details
#920.52 s92details
#930.51 s93details
#940.49 s94details
#950.51 s95details
#960.50 s96details
#970.51 s97details
#980.48 s98details
#990.50 s99details
#1000.50 s100details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:61:18: warning: 'a' may be used uninitialized in this function [-Wmaybe-uninitialized]
         if (s==m && a==0) s=0;
             ~~~~~^~~~~~~

Code

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n, m, s=0, a, r=0;
    char c;
    cin >> n >> m;
    if (n==1){
        s=m;
        a=0;
        for (int i=1; i<=m; ++i){
            cin >> c;
            if (c=='1') a++;
            if (c=='0') {
                if (a!=0 && a<s) {
                    s=a;
                }
                a=0;
            }
        }
        if (a==0 && s==m) s=0;
        if (a<s && a!=0) s=a;
    }
    else if (m==1){
        s=n;
        a=0;
        for (int i=1; i<=n; ++i){
            cin >> c;
            if (c=='1') {a++;}
            if (c=='0') {
                if (a!=0 && a<s) {
                    s=a;
                }
                a=0;
            }
        }
        if (a==0 && s==n) s=0;
        if (a<s && a!=0) s=a;
    }
    else {
        int t[n+1][m+1]={};
        for (int i=1; i<=n; ++i){
            for (int j=1; j<=m; ++j){
                cin >> c;
                if (c=='1') t[i][j]=1;
            }
        }
        s=m;
        for (int i=1; i<=n; ++i){
            a=0;
            for (int j=1; j<=m; ++j){
                if (t[i][j]==1) a++;
                else {
                    if (a!=0 && a<s) {
                        s=a;
                    }
                    a=0;
                }
            }
            if (a!=0 && a<s) s=a;
        }
        if (s==m && a==0) s=0;
        r=n;
        for (int i=1; i<=m; ++i){
            a=0;
            for (int j=1; j<=n; ++j){
                if (t[j][i]==1) a++;
                else {
                    if (a!=0 && a<r) {
                        r=a;
                    }
                    a=0;
                }
            }
            if (a!=0 && a<r) r=a;
        }
        if (s==n && a==0) r=0;
        if (n<=100 && m<=100){
            int i=1, j=0;
            while (i!=n || j!=m){
                if (t[i][j]==1 && t[i-1][j]==0 && t[i][j-1]==0){
                    for (int k=i; k<=i+r-1 && k<=n; ++k){
                        for (int l=j; l<=j+s-1 && l<=m; ++l){
                            if (t[k][l]==0){
                                if ((k-i)*s>(l-j)*r) r=k-i;
                                else s=l-j;
                                i=1;
                                j=0;
                            }
                        }
                    }
                }
                if (j<m) j++;
                else {
                    i++;
                    j=1;
                }
            }
            i=1, j=0;
            while (i!=n || j!=m){
                if (t[i][j]==1 && t[i+1][j]==0 && t[i][j-1]==0){
                    for (int k=i; k<=i+r-1 && k<=n; ++k){
                        for (int l=j; l>=j-s+1 && l>0; --l){
                            if (t[k][l]==0){
                                if ((k-i)*s>(j-1)*r) r=k-i;
                                else s=j-l;
                                i=1;
                                j=0;
                            }
                        }
                    }
                }
                if (j<m) j++;
                else {
                    i++;
                    j=1;
                }
            }
        }
        s*=r;
    }
    cout << s;
    return 0;
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
1 20
00001111101110011110

correct output
3

user output
3

Test 2

Group: 2

Verdict: ACCEPTED

input
20 1
1
1
1
0
...

correct output
2

user output
2

Test 3

Group: 3

Verdict: ACCEPTED

input
2499 1
1
1
1
1
...

correct output
38

user output
38

Test 4

Group: 4

Verdict: ACCEPTED

input
2499 1
1
1
1
1
...

correct output
55

user output
55

Test 5

Group: 5

Verdict: ACCEPTED

input
1 2500
111111111110111111111110111111...

correct output
7

user output
7

Test 6

Group: 6

Verdict: ACCEPTED

input
1 1000
111111111111111111111111111111...

correct output
33

user output
33

Test 7

Group: 7

Verdict: ACCEPTED

input
5 5
11111
11111
11011
11111
...

correct output
4

user output
4

Test 8

Group: 8

Verdict:

input
20 20
11111000000000000000
11111000000000000000
11111100000000000000
11111111111000000000
...

correct output
8

user output
1

Test 9

Group: 9

Verdict:

input
20 20
11111100000000000000
11111100000000000000
11111110000000000000
11111111111110000000
...

correct output
12

user output
1

Test 10

Group: 10

Verdict:

input
14 13
0000011100000
0000011100000
0000011100000
0000011110000
...

correct output
4

user output
0

Test 11

Group: 11

Verdict:

input
20 19
1111110000000000000
1111111000000000000
1111111000000000000
1111111000000000000
...

correct output
10

user output
1

Test 12

Group: 12

Verdict:

input
15 15
110000000000000
110000000000000
110000000000000
111000000000000
...

correct output
2

user output
1

Test 13

Group: 13

Verdict: ACCEPTED

input
15 11
00111000000
00111000000
00111000000
00111000000
...

correct output
3

user output
3

Test 14

Group: 14

Verdict:

input
16 16
0000111100001111
0000111100001111
0000111100001111
0000111100001111
...

correct output
16

user output
0

Test 15

Group: 15

Verdict:

input
18 18
111110000000000000
111110000000000000
111110000000000000
111111000000000000
...

correct output
8

user output
1

Test 16

Group: 16

Verdict:

input
20 20
11111111111111011111
11111111111111011111
11111111111111011111
11111111111111111111
...

correct output
20

user output
1

Test 17

Group: 17

Verdict:

input
65 70
000000000000000011111000000000...

correct output
15

user output
0

Test 18

Group: 18

Verdict:

input
70 62
111100000000000000000000000000...

correct output
6

user output
1

Test 19

Group: 19

Verdict:

input
94 78
111111111111111100000000000000...

correct output
22

user output
1

Test 20

Group: 20

Verdict:

input
92 84
111111111111111110000000000000...

correct output
27

user output
1

Test 21

Group: 21

Verdict:

input
53 89
000001111000000000000000000000...

correct output
6

user output
0

Test 22

Group: 22

Verdict:

input
76 93
000011111100000000000000000000...

correct output
12

user output
0

Test 23

Group: 23

Verdict:

input
100 100
111111111111111111111111111111...

correct output
209

user output
1

Test 24

Group: 24

Verdict:

input
81 74
111111111111111110000000000000...

correct output
30

user output
1

Test 25

Group: 25

Verdict:

input
100 100
111111111111111111111111111111...

correct output
80

user output
1

Test 26

Group: 26

Verdict: ACCEPTED

input
100 100
111111111111111111111111111111...

correct output
132

user output
132

Test 27

Group: 27

Verdict: ACCEPTED

input
295 268
111111111111111111111111111111...

correct output
3

user output
3

Test 28

Group: 28

Verdict:

input
290 383
111111110000000000000000000000...

correct output
20

user output
56

Test 29

Group: 29

Verdict:

input
390 320
000000000000000000000000000000...

correct output
3038

user output
6560

Test 30

Group: 30

Verdict:

input
432 434
111111111111111111111111111111...

correct output
221

user output
14008

Test 31

Group: 31

Verdict:

input
334 450
111111111111111111111111111111...

correct output
391

user output
8475

Test 32

Group: 32

Verdict:

input
407 383
111111111111111111111111111111...

correct output
156

user output
6490

Test 33

Group: 33

Verdict:

input
450 450
111111111111111111111111111111...

correct output
1235

user output
20300

Test 34

Group: 34

Verdict:

input
356 231
000000000001111111111110000000...

correct output
42

user output
96

Test 35

Group: 35

Verdict:

input
450 450
111111111111111111111111111111...

correct output
192

user output
2960

Test 36

Group: 36

Verdict: ACCEPTED

input
450 450
111111111111111111111111111111...

correct output
1404

user output
1404

Test 37

Group: 37

Verdict:

input
20 20
00000000001111111111
00000000001111111111
00000000001111111111
00000000001111111111
...

correct output
14

user output
15

Test 38

Group: 38

Verdict: ACCEPTED

input
2500 2500
111111111111111111111111111111...

correct output
6250000

user output
6250000

Test 39

Group: 39

Verdict:

input
20 20
00000000001111111111
00000000001111111111
00000000111111111111
00000001111111111111
...

correct output
24

user output
42

Test 40

Group: 40

Verdict:

input
875 882
111111111111111111111111111111...

correct output
69552

user output
135324

Test 41

Group: 41

Verdict: ACCEPTED

input
20 20
00000000111111111111
00000011111111111111
00000011111111111111
00000111111111111111
...

correct output
36

user output
36

Test 42

Group: 42

Verdict:

input
100 100
000000000000000000000000000000...

correct output
651

user output
432

Test 43

Group: 43

Verdict: ACCEPTED

input
2500 2500
000000000000000000000000000000...

correct output
250500

user output
250500

Test 44

Group: 44

Verdict:

input
450 450
000000000000000000000000000000...

correct output
12864

user output
50176

Test 45

Group: 45

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
399456

user output
1560001

Test 46

Group: 46

Verdict: ACCEPTED

input
2500 2500
111111111111111111111111100000...

correct output
625

user output
625

Test 47

Group: 47

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
395486

user output
1552507

Test 48

Group: 48

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
3360

user output
4578

Test 49

Group: 49

Verdict: ACCEPTED

input
2500 2500
111111111111111111111111111111...

correct output
28

user output
28

Test 50

Group: 50

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
7348

user output
8580

Test 51

Group: 51

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
6622

user output
7869

Test 52

Group: 52

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
5593

user output
6815

Test 53

Group: 53

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
4545

user output
5760

Test 54

Group: 54

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
4067

user output
6419

Test 55

Group: 55

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
2806

user output
4876

Test 56

Group: 56

Verdict: ACCEPTED

input
2500 2500
111111111111111111111111111111...

correct output
122500

user output
122500

Test 57

Group: 57

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
4674

user output
6314

Test 58

Group: 58

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
6272

user output
8624

Test 59

Group: 59

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
3337

user output
5499

Test 60

Group: 60

Verdict: ACCEPTED

input
2500 2500
111111111111111111111111111111...

correct output
870

user output
870

Test 61

Group: 61

Verdict: ACCEPTED

input
2500 2500
111111111111111111111111111111...

correct output
532

user output
532

Test 62

Group: 62

Verdict: ACCEPTED

input
2500 2500
111111111111111111111111111111...

correct output
114271

user output
114271

Test 63

Group: 63

Verdict: ACCEPTED

input
2500 2500
111111111111111111111111111111...

correct output
1560001

user output
1560001

Test 64

Group: 64

Verdict: ACCEPTED

input
2500 2500
111111111111111111111111111111...

correct output
62500

user output
62500

Test 65

Group: 65

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
1400

user output
2600

Test 66

Group: 66

Verdict:

input
2500 2500
000000111111111111111111111111...

correct output
9910

user output
10000

Test 67

Group: 67

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
9879

user output
11100

Test 68

Group: 68

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
16224

user output
17472

Test 69

Group: 69

Verdict:

input
2500 2500
000000000000000000000000000000...

correct output
6300

user output
7490

Test 70

Group: 70

Verdict:

input
2000 2000
111111111111111111111111111111...

correct output
59760

user output
139908

Test 71

Group: 71

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
40480

user output
333963

Test 72

Group: 72

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
137159

user output
525200

Test 73

Group: 73

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
32110

user output
586404

Test 74

Group: 74

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
10914

user output
549858

Test 75

Group: 75

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
124074

user output
583461

Test 76

Group: 76

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
4617

user output
617171

Test 77

Group: 77

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
106981

user output
648800

Test 78

Group: 78

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
44980

user output
634356

Test 79

Group: 79

Verdict:

input
2500 2500
111111111111111111111111110000...

correct output
1365

user output
5564

Test 80

Group: 80

Verdict:

input
2500 2500
111111111111111111110000000000...

correct output
602

user output
5400

Test 81

Group: 81

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
2709

user output
64410

Test 82

Group: 82

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
149556

user output
687240

Test 83

Group: 83

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
11289

user output
680600

Test 84

Group: 84

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
366

user output
5000

Test 85

Group: 85

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
4814

user output
272483

Test 86

Group: 86

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
132

user output
2720

Test 87

Group: 87

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
589

user output
226765

Test 88

Group: 88

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
56448

user output
680600

Test 89

Group: 89

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
10044

user output
92728

Test 90

Group: 90

Verdict:

input
2000 2000
111111111111111111111111111111...

correct output
6384

user output
206961

Test 91

Group: 91

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
15330

user output
191444

Test 92

Group: 92

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
47759

user output
123630

Test 93

Group: 93

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
624

user output
4030

Test 94

Group: 94

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
16695

user output
92907

Test 95

Group: 95

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
19224

user output
683920

Test 96

Group: 96

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
89386

user output
683090

Test 97

Group: 97

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
243

user output
2356

Test 98

Group: 98

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
73840

user output
684750

Test 99

Group: 99

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
10764

user output
96237

Test 100

Group: 100

Verdict:

input
2500 2500
111111111111111111111111111111...

correct output
135

user output
5100