-
-
Save koswarabilly/f0598c764eec21d539a43af29dabe0bd to your computer and use it in GitHub Desktop.
kickstartRoundB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const fs = require('fs'); | |
const input = fs.readFileSync('./1RB.txt', 'utf8').trim().split('\n'); | |
let currentline = 0; | |
function readline(){ | |
return input[currentline++]; | |
} | |
let T = readline(); | |
for(let i = 1; i <= T; i++){ | |
let stt = readline().split(' '); | |
let arr = parseArray(readline().split(' ')); | |
let n = parseInt(stt[0].replace('\r', '')) | |
// Brute force solution | |
console.log(`Case #${i}: ${solve(n, arr)}`); | |
} | |
function solve(n, arr){ | |
let firstCheck = arr[0], check = arr[0], lastCheck = arr[n - 1], checkCount = 0 | |
for (var i = 1; i < n - 1; i++) { | |
if (arr[i] > check && arr[i] > lastCheck && arr[i] > firstCheck) { | |
check = arr[i] | |
checkCount = 1 | |
} else { | |
if (arr[i] == check && arr[i] != firstCheck && arr[i] != lastCheck) { | |
checkCount++ | |
} | |
} | |
} | |
return checkCount | |
} | |
function parseArray(arr) { | |
let rArr = JSON.parse(JSON.stringify(arr)) | |
for (var i = 0; i < arr.length; i++) { | |
rArr[i] = parseInt(rArr[i].replace('\r', '')) | |
} | |
return rArr | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const fs = require('fs'); | |
const input = fs.readFileSync('./2RB.txt', 'utf8').trim().split('\n'); | |
let currentline = 0; | |
function readline(){ | |
return input[currentline++]; | |
} | |
let T = readline(); | |
for(let i = 1; i <= T; i++){ | |
let stt = readline().split(' '); | |
let arr = parseArray(readline().split(' ')); | |
let n = parseInt(stt[0].replace('\r', '')) | |
let d = parseInt(stt[1].replace('\r', '')) | |
console.log(`Case #${i}: ${solve(n, d, arr)}`); | |
} | |
function solve(n, d, arr){ | |
let lo = 0, hi = d | |
while (lo < hi) { | |
let mid = Math.floor((lo + hi + 1) / 2) | |
console.log(mid) | |
if (check(mid, n, d, arr)) { | |
lo = mid | |
} else { | |
hi = mid - 1 | |
} | |
} | |
return lo | |
} | |
function check(mid, n, d, arr) { | |
let k = mid | |
for (var i = 0; i < n; i++) { | |
let busRun = Math.floor(k % arr[i]) | |
if (busRun != 0) { | |
k += (arr[i] - Math.floor(k % arr[i])) | |
} | |
} | |
console.log(k + "<>" + d) | |
if (k <= d) { | |
return true | |
} else { | |
return false | |
} | |
} | |
function parseArray(arr) { | |
let rArr = JSON.parse(JSON.stringify(arr)) | |
for (var i = 0; i < arr.length; i++) { | |
rArr[i] = parseInt(rArr[i].replace('\r', '')) | |
} | |
return rArr | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const fs = require('fs'); | |
const input = fs.readFileSync('./3RB.txt', 'utf8').trim().split('\n'); | |
let currentline = 0; | |
function readline(){ | |
return input[currentline++]; | |
} | |
let T = readline(); | |
for(let i = 1; i <= T; i++){ | |
let arr = readline().replace('\r', ''); | |
let cArr = parseArray(arr, []) | |
console.log(`Case #${i}: ${solve(cArr.join(''))}`); | |
} | |
function solve(arr){ | |
let x = 1, y = 1 | |
for (var i = 0; i < arr.length; i++) { | |
if (arr[i] === 'S') { | |
y++ | |
} | |
if (arr[i] === 'N') { | |
y-- | |
} | |
if (arr[i] === 'E') { | |
x++ | |
} | |
if (arr[i] === 'W') { | |
x-- | |
} | |
} | |
if (x < 1) x = 1e9 - (x * -1) | |
if (y < 1) y = 1e9 - (y * -1) | |
return x + " " + y | |
} | |
function parseArray(arr, cArr) { | |
let rArr = cArr, hn = 1, recursive = false | |
for (var i = 0; i < arr.length; i++) { | |
if (isNaN(parseInt(arr[i]))) { | |
rArr.push(arr[i]) | |
} else { | |
hn = arr[i] | |
let cb = 0, ob = 1, bv = "" | |
for (var j = i + 2; j < arr.length; j++) { | |
if (arr[j] === '(') { | |
ob++ | |
} | |
if (ob > 0 && arr[j] === ')') { | |
ob-- | |
} | |
if (arr[j] === ')' && ob == 0) { | |
cb = j | |
break | |
} else { | |
bv = bv + arr[j] | |
} | |
} | |
if (bv.includes('(')) { | |
recursive = true | |
} | |
for (var j = 0; j < hn; j++) { | |
rArr.push(bv) | |
} | |
hn = 1 | |
i = cb | |
} | |
} | |
if (recursive) { | |
return parseArray(rArr.join(''), []) | |
} else { | |
return rArr | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment