Skip to content

Instantly share code, notes, and snippets.

@koswarabilly
Last active July 30, 2020 09:11
Show Gist options
  • Save koswarabilly/f0598c764eec21d539a43af29dabe0bd to your computer and use it in GitHub Desktop.
Save koswarabilly/f0598c764eec21d539a43af29dabe0bd to your computer and use it in GitHub Desktop.
kickstartRoundB
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
}
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
}
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