前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PTA平台nodejs的输入输出控制

PTA平台nodejs的输入输出控制

作者头像
Mr.Teen
修改2020-04-17 12:08:57
1.1K0
修改2020-04-17 12:08:57
举报
const readline = require('readline') //在这里引入

let testGroupNum = 0
let groupList = [] // { num: number, numArr: int[] }
let groupInfo = {}

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
})

let k = -1 //先给行数置-1,表示还没开始读取
let rows = [] //用于存储每行的输入

rl.on('line', function(line) {
  if (k < 0) {
    k = parseInt(line.trim()) * 2 //读取第一行,得到接下来输入的行数
  } else {
    rows.push(line.trim()) //将每次输入的行数据存入
    let arr = line
      .trim()
      .split(' ')
      .map(function(x) {
        return parseInt(x)
      })
    if (rows.length % 2 === 1) {
      groupInfo.num = arr[0] || 0
    } else {
      groupInfo.numArr = arr
      groupList.push(groupInfo)
      groupInfo = {} // 重置
    }
    if (k == rows.length) {
      main(groupList)
      rows = 0
      k = -1
    }
  }
})

// function exitinput() {
//   rl.on('close', function(cmd) {
//     // console.log(input.join('\n'))
//     process.exit(0)
//   })
// }
function main(list) {
  const t = +new Date()
  for (let i = 0, len = list.length; i < len; i++) {
    isInContan(list[i].numArr)
  }
  process.exit(0)
  //   console.log('cost', +new Date() - t)
}
// num
function isInContan(arr) {
  const min = Math.min.apply(null, arr)
  const max = Math.max.apply(null, arr)
  if (min == max) {
    console.log(min)
    return false
  }
  if (arr.indexOf(0) >= 0) {
    console.log('Impossible')
    return false
  }
  let minIndex = arr.indexOf(min)
  let maxIndex = arr.indexOf(max)
  arr[minIndex] = arr[maxIndex] = max - min
  isInContan(arr)
}

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档