From 422ee8626304a555aa39fb0e8e77b6b8656adb3c Mon Sep 17 00:00:00 2001
From: dm1sh <me@dmitriy.icu>
Date: Thu, 18 Feb 2021 20:44:14 +0500
Subject: [PATCH] Fixed 24th and 36th tasks, fixed names for 71th and 41th

---
 18/24.csv           |    5 +
 18/24.py            |   26 +-
 18/36.cpp           |   36 --
 18/36.py            |    6 +-
 18/{42.py => 41.py} |    0
 18/{72.py => 71.py} |    6 +-
 18/dat/18-11.csv    |   12 +
 18/dat/18-13.csv    |   12 +
 18/dat/18-13s.ods   |  Bin 0 -> 20904 bytes
 18/dat/18-2.csv     |   10 +
 18/dat/18-k1.csv    |  300 +++++++++++++
 18/dat/18-k2.csv    |   15 +
 18/dat/18-k3.csv    | 1000 +++++++++++++++++++++++++++++++++++++++++++
 13 files changed, 1380 insertions(+), 48 deletions(-)
 create mode 100644 18/24.csv
 delete mode 100644 18/36.cpp
 rename 18/{42.py => 41.py} (100%)
 rename 18/{72.py => 71.py} (87%)
 create mode 100644 18/dat/18-11.csv
 create mode 100644 18/dat/18-13.csv
 create mode 100644 18/dat/18-13s.ods
 create mode 100644 18/dat/18-2.csv
 create mode 100644 18/dat/18-k1.csv
 create mode 100644 18/dat/18-k2.csv
 create mode 100644 18/dat/18-k3.csv

diff --git a/18/24.csv b/18/24.csv
new file mode 100644
index 0000000..b79f0eb
--- /dev/null
+++ b/18/24.csv
@@ -0,0 +1,5 @@
+10 ;20 ;10 ;30 ;40 
+101;101;30 ;15 ;50 
+5  ;7  ;8  ;200;1  
+6  ;-10;10 ;200;80
+-30;-10;11 ;12 ;1
\ No newline at end of file
diff --git a/18/24.py b/18/24.py
index 5c66e58..f2dd747 100644
--- a/18/24.py
+++ b/18/24.py
@@ -11,19 +11,31 @@ def count(a: list[list[int]], i: int, j: int) -> list[int]:
 
   c = a[i][j]
 
+  if r == None and b == None and i == len(a)-1 and j == len(a[0])-1:
+    return [[c, [[i, j]]], [c, [[i, j]]]]
   if r == None and b == None:
-    return [c, c]
+    return None
   if r == None:
-    return [c + b[0], c + b[1]]
+    return [[c + b[0][0], [*b[0][1], [i, j]]], [c + b[1][0], [*b[1][1], [i, j]]]]
   if b == None:
-    return [c + r[0], c + r[1]]
+    return [[c + r[0][0], [*r[0][1], [i, j]]], [c + r[1][0], [*r[1][1], [i, j]]]]
 
-  return [c + max(r[0], b[0]), c + min(r[1], b[1])]
+  mmax = max(r[0][0], b[0][0])
+  mmin = min(r[1][0], b[1][0])
+
+  Marr = r[0][1] if mmax == r[0][0] else b[0][1]
+  marr = r[1][1] if mmin == r[1][0] else b[1][1]
+
+  return [[c + mmax, [*Marr, [i, j]]], [c + mmin, [*marr, [i, j]]]]
 
 
 with open("dat/18-13.csv", 'r') as f:
-  a = [[int(i) for i in row.split(';')] for row in f.readlines()]
+# with open("24.csv", 'r') as f:
+  a = [[int(i.strip()) for i in row.split(';')] for row in f.readlines()]
 
-  print(count(a, 0, 0))
+  ret = count(a, 0, 0)
 
-# 1535 330 (не знаю как починить с минимумом)
+  print(ret[0])
+  print(ret[1])
+
+# 1535 975
diff --git a/18/36.cpp b/18/36.cpp
deleted file mode 100644
index ff3b70b..0000000
--- a/18/36.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-#include <iostream>
-#include <fstream>
-
-using namespace std;
-
-// 345 (Даже написал на плюсах, не знаю, что с ней не так)
-
-int main()
-{
-  ifstream inp("dat/18-17.txt");
-
-  double p = INT8_MAX;
-  double msum = INT8_MIN;
-  double sum = 0;
-
-  while (!inp.eof())
-  {
-    double n;
-    inp >> n;
-
-    if (n < p)
-    {
-      sum += n;
-      if (sum > msum)
-        msum = sum;
-    }
-    else
-      sum = 0;
-
-    p = n;
-  }
-
-  cout << (int)msum << endl;
-
-  return 0;
-}
\ No newline at end of file
diff --git a/18/36.py b/18/36.py
index 32cd2ef..c26fbe1 100644
--- a/18/36.py
+++ b/18/36.py
@@ -1,4 +1,4 @@
-# 345 (Даже написал на плюсах, не знаю, что с ней не так)
+# 495 (я дурашка)
 
 with open('./dat/18-17.txt', 'r') as f:
   p = float('+inf')
@@ -12,7 +12,7 @@ with open('./dat/18-17.txt', 'r') as f:
       if s > ms:
         ms = s
     else:
-      s = 0
+      s = n
     p = n
 
-print(ms)
+print(int(ms))
diff --git a/18/42.py b/18/41.py
similarity index 100%
rename from 18/42.py
rename to 18/41.py
diff --git a/18/72.py b/18/71.py
similarity index 87%
rename from 18/72.py
rename to 18/71.py
index 6f3388f..750b119 100644
--- a/18/72.py
+++ b/18/71.py
@@ -10,8 +10,10 @@ def count(a, i, j):
 
   c = a[i][j] if a[i][j] % 3 == 0 or a[i][j] % 4 == 0 else 0
 
-  if l == None and t == None:
+  if l == None and t == None and i == 0 and j == 0:
     return [c, c]
+  if l == None and t == None:
+    return None
   if l == None:
     return [c + t[0], c + t[1]]
   if t == None:
@@ -24,4 +26,4 @@ a = [[int(i) for i in row.split(';')] for row in open('dat/18-11.csv', 'r')]
 
 print(count(a, len(a)-1, len(a[0])-1))
 
-# 1021 222
\ No newline at end of file
+# 1021 222
diff --git a/18/dat/18-11.csv b/18/dat/18-11.csv
new file mode 100644
index 0000000..2b2137d
--- /dev/null
+++ b/18/dat/18-11.csv
@@ -0,0 +1,12 @@
+24;13;11;50;77;69;74;10;5;98;37;49
+81;85;55;97;56;93;160;46;45;31;28;51
+26;97;64;98;59;42;133;74;39;56;12;86
+11;83;18;93;64;48;5;97;6;14;58;78
+86;81;432;39;4;2;67;11;16;87;81;46
+81;17;28;24;18;89;1;10;42;58;39;7
+74;43;333;10;57;31;90;37;25;499;26;93
+142;56;45;57;37;13;4;9;34;62;87;94
+66;20;84;88;34;64;95;45;1;14;51;8
+37;14;22;16;9;60;38;38;48;24;42;82
+83;84;98;85;499;48;56;55;90;99;7;3
+23;64;76;32;65;15;81;57;83;48;61;68
diff --git a/18/dat/18-13.csv b/18/dat/18-13.csv
new file mode 100644
index 0000000..ceff5f9
--- /dev/null
+++ b/18/dat/18-13.csv
@@ -0,0 +1,12 @@
+58;85;-5;36;7;48;27;100;30;31;94;16
+47;13;32;46;100;34;144;31;74;96;25;92
+46;83;144;74;34;346;65;10;-10;20;40;52
+44;37;39;73;69;78;57;33;-16;40;82;19
+85;70;6;42;81;3;52;87;345;74;22;30
+96;23;91;77;333;20;72;120;15;86;48;57
+17;37;-100;50;87;47;94;62;45;26;34;58
+63;40;6;53;-22;12;94;53;54;42;1;25
+40;43;24;61;90;91;90;3;99;74;57;91
+90;72;123;92;19;58;72;56;28;43;62;59
+85;62;99;111;51;-91;72;13;54;47;64;94
+5;12;2;89;33;61;26;64;53;43;109;15
diff --git a/18/dat/18-13s.ods b/18/dat/18-13s.ods
new file mode 100644
index 0000000000000000000000000000000000000000..5fdb2cfa3d8205938fb34216017900d279abb27b
GIT binary patch
literal 20904
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%0Av+H=qyf<~N^#1F@+G*B5-
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
a33`)V+7ivf%bF(0e7Q3>9he#G-G2c#s5HR<

literal 0
HcmV?d00001

diff --git a/18/dat/18-2.csv b/18/dat/18-2.csv
new file mode 100644
index 0000000..4fb67ae
--- /dev/null
+++ b/18/dat/18-2.csv
@@ -0,0 +1,10 @@
+15;43;23;44;85;19;72;67;36;80
+100;48;92;64;91;61;71;2;82;74
+69;9;12;9;91;52;94;58;69;42
+53;42;18;58;93;55;48;76;18;13
+49;63;16;13;45;6;81;19;53;63
+49;53;23;44;61;2;2;63;88;16
+2;75;100;27;72;64;95;49;51;84
+64;68;17;16;18;2;30;57;86;6
+64;84;53;19;23;91;82;2;2;59
+72;47;56;85;9;26;47;48;91;91
diff --git a/18/dat/18-k1.csv b/18/dat/18-k1.csv
new file mode 100644
index 0000000..2bdcbf1
--- /dev/null
+++ b/18/dat/18-k1.csv
@@ -0,0 +1,300 @@
+41
+104
+59
+45
+156
+79
+120
+137
+133
+121
+186
+155
+110
+162
+126
+29
+21
+71
+12
+66
+52
+86
+101
+182
+181
+168
+14
+150
+72
+187
+69
+20
+150
+11
+39
+119
+174
+120
+65
+160
+17
+139
+54
+72
+185
+102
+181
+25
+142
+65
+164
+84
+160
+178
+30
+100
+166
+11
+57
+197
+110
+95
+55
+101
+38
+145
+69
+88
+29
+184
+135
+115
+160
+86
+166
+11
+39
+89
+84
+200
+77
+30
+135
+140
+164
+54
+32
+94
+100
+32
+94
+168
+199
+188
+104
+181
+187
+77
+186
+75
+46
+82
+134
+67
+180
+57
+27
+170
+12
+158
+140
+59
+75
+25
+195
+108
+88
+40
+173
+171
+194
+31
+92
+21
+67
+79
+71
+80
+172
+119
+147
+164
+46
+10
+47
+150
+160
+14
+40
+116
+195
+103
+39
+150
+129
+100
+189
+199
+124
+50
+177
+34
+69
+184
+141
+99
+10
+51
+82
+18
+60
+67
+132
+129
+184
+195
+91
+88
+165
+125
+128
+178
+119
+95
+129
+171
+107
+164
+38
+136
+190
+154
+98
+29
+180
+46
+102
+159
+12
+183
+167
+47
+13
+40
+97
+114
+126
+87
+64
+147
+60
+36
+121
+132
+56
+146
+146
+95
+196
+142
+100
+63
+138
+12
+129
+31
+32
+45
+148
+119
+196
+197
+162
+21
+139
+180
+49
+35
+150
+146
+102
+34
+200
+73
+94
+129
+96
+143
+86
+17
+14
+156
+97
+116
+175
+113
+117
+196
+10
+139
+93
+132
+133
+134
+155
+88
+186
+185
+177
+94
+170
+97
+165
+99
+116
+96
+114
+109
+27
+112
+84
+114
+97
+182
+124
+35
+90
+144
+71
+155
+177
+192
+39
+47
+153
+20
+86
+28
+80
+147
+48
+30
+58
+26
+14
+175
+116
+29
+85
+168
diff --git a/18/dat/18-k2.csv b/18/dat/18-k2.csv
new file mode 100644
index 0000000..aeb8b34
--- /dev/null
+++ b/18/dat/18-k2.csv
@@ -0,0 +1,15 @@
+42 100 3 87 2 6 98 19 1 48 59 99 91 33 96
+15 32 6 94 38 32 74 16 85 7 14 31 4 35 93
+84 25 59 24 90 25 96 52 8 21 25 3 58 72 6
+43 38 54 81 37 35 24 98 94 14 62 86 75 47 57
+6 62 69 56 84 50 89 99 8 18 47 57 38 100 63
+55 36 34 12 93 77 45 44 84 56 8 25 29 57 60
+84 35 31 66 21 94 80 52 8 62 55 21 48 69 76
+10 77 83 82 35 5 24 12 35 35 72 57 34 49 88
+3 16 96 78 51 92 91 67 79 81 97 26 83 73 37
+36 95 25 46 91 84 33 82 98 53 8 70 52 39 63
+6 59 11 11 6 13 83 20 39 65 53 68 4 55 34
+27 60 15 42 15 24 12 57 20 9 1 79 29 46 60
+47 52 94 76 42 38 8 24 31 8 61 24 89 52 16
+92 21 56 57 61 68 41 29 11 62 2 38 27 97 56
+77 32 95 53 4 95 72 28 69 7 41 89 39 67 12
diff --git a/18/dat/18-k3.csv b/18/dat/18-k3.csv
new file mode 100644
index 0000000..f1f800d
--- /dev/null
+++ b/18/dat/18-k3.csv
@@ -0,0 +1,1000 @@
+123
+985
+73
+254
+438
+856
+424
+925
+182
+421
+101
+693
+233
+137
+810
+991
+209
+906
+207
+318
+220
+533
+104
+887
+480
+789
+780
+902
+459
+332
+823
+75
+576
+334
+753
+497
+759
+456
+350
+29
+873
+997
+922
+751
+827
+932
+704
+806
+319
+626
+310
+649
+138
+832
+828
+745
+453
+539
+965
+644
+878
+745
+820
+291
+665
+313
+295
+911
+474
+953
+394
+270
+750
+499
+205
+627
+995
+261
+503
+962
+237
+806
+749
+838
+209
+34
+997
+448
+505
+330
+399
+898
+546
+396
+1000
+986
+82
+185
+433
+838
+490
+665
+250
+896
+234
+832
+111
+989
+753
+353
+343
+378
+456
+494
+896
+244
+938
+665
+643
+38
+181
+644
+865
+38
+253
+584
+310
+941
+53
+163
+480
+510
+764
+954
+456
+875
+11
+669
+14
+731
+117
+622
+989
+492
+372
+546
+349
+616
+818
+605
+470
+734
+930
+697
+365
+618
+302
+931
+353
+504
+123
+789
+641
+263
+488
+856
+639
+82
+532
+562
+255
+838
+448
+560
+56
+43
+979
+63
+214
+644
+469
+945
+697
+1000
+616
+745
+814
+149
+949
+461
+841
+873
+527
+954
+376
+28
+90
+423
+780
+314
+170
+904
+805
+639
+846
+219
+555
+608
+538
+250
+660
+868
+396
+534
+339
+717
+280
+219
+470
+653
+497
+478
+927
+706
+386
+887
+996
+738
+955
+573
+605
+737
+693
+655
+28
+567
+268
+159
+436
+908
+259
+868
+782
+329
+39
+565
+494
+163
+373
+638
+218
+738
+584
+609
+440
+963
+55
+848
+125
+628
+285
+260
+137
+725
+760
+389
+431
+902
+859
+144
+967
+90
+736
+748
+35
+648
+753
+997
+428
+551
+287
+101
+335
+737
+642
+837
+129
+451
+459
+238
+650
+625
+83
+618
+204
+327
+451
+157
+506
+778
+70
+539
+304
+580
+972
+512
+294
+144
+443
+705
+957
+32
+676
+69
+270
+707
+132
+245
+33
+903
+353
+44
+628
+124
+48
+369
+809
+893
+279
+881
+834
+458
+748
+387
+740
+543
+861
+862
+330
+881
+516
+631
+488
+640
+627
+941
+725
+88
+998
+663
+828
+239
+325
+954
+287
+190
+658
+596
+285
+58
+339
+81
+615
+833
+79
+288
+776
+33
+656
+920
+450
+480
+820
+235
+21
+25
+464
+661
+342
+647
+186
+471
+341
+404
+401
+238
+244
+199
+470
+793
+690
+919
+340
+646
+119
+754
+647
+651
+464
+601
+209
+746
+493
+287
+87
+366
+35
+385
+696
+623
+216
+158
+586
+466
+805
+777
+889
+752
+106
+782
+125
+381
+361
+88
+391
+713
+625
+428
+989
+317
+26
+521
+165
+302
+891
+273
+618
+781
+93
+967
+897
+485
+840
+137
+789
+154
+56
+70
+833
+16
+821
+419
+338
+433
+214
+66
+51
+478
+567
+518
+779
+189
+69
+360
+992
+800
+803
+85
+41
+493
+980
+935
+858
+58
+910
+480
+667
+590
+610
+850
+158
+421
+296
+639
+623
+855
+996
+529
+381
+982
+408
+865
+183
+75
+749
+141
+609
+471
+814
+24
+407
+480
+611
+374
+417
+868
+400
+829
+667
+904
+218
+200
+376
+854
+884
+11
+474
+281
+509
+893
+493
+819
+830
+586
+920
+993
+561
+306
+222
+551
+141
+688
+109
+184
+232
+598
+827
+849
+874
+983
+950
+801
+849
+880
+574
+545
+323
+318
+61
+333
+338
+567
+263
+26
+453
+373
+103
+66
+99
+697
+835
+677
+635
+171
+617
+509
+790
+301
+404
+94
+913
+833
+902
+499
+392
+478
+248
+252
+690
+593
+178
+496
+897
+179
+481
+763
+997
+370
+202
+554
+178
+840
+294
+448
+344
+58
+846
+514
+80
+475
+113
+593
+137
+436
+921
+132
+552
+277
+272
+350
+497
+544
+245
+564
+477
+848
+374
+682
+424
+454
+104
+972
+220
+984
+31
+196
+490
+523
+430
+486
+170
+11
+100
+512
+109
+19
+969
+506
+332
+207
+207
+26
+607
+504
+617
+976
+263
+128
+830
+917
+832
+995
+106
+151
+836
+681
+218
+994
+298
+350
+276
+238
+973
+547
+413
+528
+389
+871
+720
+216
+848
+607
+125
+702
+373
+619
+32
+673
+845
+387
+70
+336
+923
+562
+382
+51
+801
+768
+316
+548
+784
+172
+309
+696
+395
+716
+641
+472
+968
+592
+218
+728
+785
+755
+936
+560
+166
+21
+326
+851
+793
+263
+544
+97
+612
+985
+613
+344
+367
+238
+772
+75
+486
+948
+364
+788
+872
+987
+169
+633
+685
+608
+588
+609
+666
+609
+469
+166
+74
+647
+454
+791
+222
+365
+729
+753
+95
+331
+493
+489
+50
+898
+334
+306
+774
+832
+543
+352
+873
+949
+146
+639
+168
+401
+490
+389
+453
+163
+272
+946
+621
+84
+599
+855
+324
+315
+637
+137
+826
+262
+231
+648
+514
+743
+777
+241
+354
+783
+359
+657
+970
+705
+295
+319
+36
+352
+272
+357
+671
+574
+95
+470
+510
+193
+248
+843
+538
+270
+200
+392
+85
+864
+829
+445
+370
+308
+476
+834
+792
+107
+49
+297
+254
+894
+51
+58
+351
+669
+810
+155
+72
+623
+521
+954
+232
+66
+234
+240
+431
+502
+861
+23
+460
+591
+207
+877
+187
+771
+609
+787
+146
+993
+85
+180
+855
+545
+937
+46
+747
+493
+388
+568
+876
+705
+83
+600
+367
+198
+731
+379
+411
+383
+916
+281
+68
+708
+217
+653
+325
+972
+612
+134
+198
+543
+204
+651
+608
+740
+464
+180
+598
+41
+802
+307
+478
+174
+40
+767
+158
+661
+714
+541
+88
+588
+813
+675
+353
+821
+464
+240
+520
+711
+818
+574
+500
+252
+227
+915
+32
+834
+336
+754
+98
+100
+529
+163
+89
+514
+401
+946
+46
+503
+11
+657
+574
+131
+793
+434
+98
+708
+139
+555
+832
+894
+158
+260
+212
+425
+861
+968
+336
+188
+497
+89
+733
+429
+412
+468
+816
+711
+410
+258
+290
+198
+890
+487
+304
+697
+897
+381
+931
+546
+132
+312
+935
+581
+35
+184
+918
+109
+354
+359
+914
+57
+428
+306
+484
+622
+245
+453
+779
+644
+944
+564
+146
+692
+941
+212
+51
+283