22
33//////////////
44
5+ class CaseParser {
6+ constructor ( ) {
7+ this . damage = 0
8+ this . sequence = [ ]
9+ this . state = '1'
10+ }
11+
12+ readline ( line ) {
13+ let values = line . split ( ' ' )
14+ this . damage = parseInt ( values [ 0 ] )
15+ this . sequence = Array . from ( values [ 1 ] )
16+
17+ this . state = 'done'
18+ }
19+
20+ isComplete ( ) {
21+ return ( this . state === 'done' )
22+ }
23+
24+ getCase ( ) {
25+ return {
26+ damage : this . damage ,
27+ sequence : this . sequence
28+ }
29+ }
30+ }
31+
532// call parse() to read the inputs and return list of problems / test cases.
633function parse ( ) {
734 const readline = require ( 'readline' ) ;
835 let t = 0 ;
936 let currentT = 0 ;
1037 let readState = 't'
1138 let probs = [ ]
39+ let caseParser = new CaseParser ( )
1240
1341 const rl = readline . createInterface ( {
1442 input : process . stdin ,
@@ -23,12 +51,20 @@ function parse() {
2351 break
2452 }
2553 case 'case' : {
26- let values = line . split ( ' ' )
27- let prob = new Problem ( )
28- prob . damage = parseInt ( values [ 0 ] )
29- prob . sequence = Array . from ( values [ 1 ] )
30- probs . push ( prob )
31- currentT += 1
54+ caseParser . readline ( line )
55+
56+ if ( caseParser . isComplete ( ) ) {
57+ probs . push ( caseParser . getCase ( ) )
58+ currentT += 1
59+ caseParser = new CaseParser ( )
60+ }
61+
62+ // let values = line.split(' ')
63+ // let prob = new Problem()
64+ // prob.damage = parseInt(values[0])
65+ // prob.sequence = Array.from(values[1])
66+ // probs.push(prob)
67+ // currentT += 1
3268 break
3369 }
3470 }
@@ -108,7 +144,7 @@ function calculateMinSwap(prob) {
108144
109145 strengths [ lastC + 1 ] = strengths [ lastC ]
110146 strengths [ lastC ] = strengths [ lastC ] / 2
111-
147+
112148 lastC += 1
113149 minSwap += 1
114150 currentTotalDamage = calculateTotalDamage ( prob , strengths )
@@ -156,8 +192,8 @@ function main() {
156192 parse ( )
157193}
158194
159- if ( ! module . parent ) {
160- main ( )
161- }
162-
195+ if ( ! module . parent ) {
196+ main ( )
197+ }
198+
163199module . exports = solve
0 commit comments