专栏首页全栈开发小账本PTA平台nodejs的输入输出控制

PTA平台nodejs的输入输出控制

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)
}

原文链接:https://juejin.im/post/5b446adef265da0f563dc085

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Typescript中类型错误解决方案

    Mr.Teen
  • vue的注册路由

    Vue 提供了 Vue.use 的全局 API 来注册这些插件,所以我们先来分析一下它的实现原理,定义在 vue/src/core/global-api/use...

    Mr.Teen
  • TypeScript + Vue 项目的 Eslint中解构配置

    该文讲解Eslint 配置项 prefer-destructuring在TypeScritp + Vue 项目中使用和配置

    Mr.Teen
  • [pytorch] 图像识别之mixup/cutmix

    本人kaggle分享链接:https://www.kaggle.com/c/bengaliai-cv19/discussion/126504

    MachineLP
  • linux top ps grep 操作技巧mark

    Press (Shift+O) to Sort field via field letter, for example press ‘a‘ letter to ...

    heidsoft
  • python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例

    一种同时显示多个窗口的方法是,创建多个独立的窗口,这些独立的窗口被称为SDI(Single Document Interface 单文档界面),每个窗口都有自己...

    砸漏
  • PHPUnit使用笔记

    1.引入composer composer require  phpunit/phpunit 2.编写测试代码 <?php require_once './v...

    苦咖啡
  • 前端面试题(一)

    答:== 表示相等即仅仅比较两边变量的数值是否相等;=== 表示恒等,首先比较两边的变量数据类型是否相等,其次比较两边的变量的数值是否相等。

    benny
  • Python计算序列中数字最大差值(美团2016校招笔试题)

    题目要求:给定一个包含若干数字的序列A(本文以列表为例),求满足0≤a≤b<n(其中n为序列长度)的A[b] - A[a]的最大值。 编程要点:循环结构用法,切...

    Python小屋屋主
  • 手把手教你用Python搭建一个AI智能问答系统

    导读:智能问答系统是自然语言处理的一个重要分支。今天我们将利用分词处理以及搜索引擎搭建一个智能问答系统。 本文经授权转自公众号CSDN(ID:CSDNnews)

    华章科技

扫码关注云+社区

领取腾讯云代金券