Блог пользователя RohitKaushal

Автор RohitKaushal, история, 5 лет назад, По-английски

javascript : To use in Codeforces

Input
readline() Reads one line from stdin.
to get some space separated values from a line:

var num = readline().split(" ").map(x => parseInt(x)); // num will be an array [1,2,3]
var x = num[0]; // to store values in different variables. 
var y= num[1];
var z= num[2];


var num2= readline(); // reads next line.

Output
print(x); // with auto '\n' (newline)

Refer this submission for a sample program submission.




Node.js : To run your programs locally and submit on CF

readline() do not work by default if you try to use it locally on your computer.

Write this header code in the beginning of your js code

'use strict';

process.stdin.resume();
process.stdin.setEncoding('utf-8');

let inputString = '';
let currentLine = 0;

process.stdin.on('data', inputStdin => {
    inputString += inputStdin;
});

process.stdin.on('end', _ => {
    inputString = inputString.trim().split('\n').map(string => {
        return string.trim();
    });
    
    main();    
});

function readline() {
    return inputString[currentLine++];
}
// Make a Snippet for the code above this and then write your logic in main();


function main() {
    const x = readline();
    var line2 = readline(); 
    
    foo(x);
    foo(line2);
}
function foo(x) {
    process.stdout.write("hello: ");   // without auto '\n' (newline)
    console.log(x);  // with auto '\n' (newline)
}

Testing Locally

paste your input in a text file input.txt
then
$ cat input.txt | node main.js output on console.
$ cat input.txt | node main.js > output.txt output in file.

you can also make a sublime-build file for this and then just press Ctrl+B
Tools> Build System > new build system > nodejs.sublime-build
{ "shell_cmd": "cat $file_path/input.txt | node $file > $file_path/output.txt" }

Here is a Sample Image :)

  • Проголосовать: нравится
  • -11
  • Проголосовать: не нравится

»
5 лет назад, # |
  Проголосовать: нравится +18 Проголосовать: не нравится

Why so many thumbs down here?

»
5 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

I'm starting to believe there are downvoting bots. I just got 13 downvotes in 7 minutes for an innocent comment regarding this issue under the linked post.

MikeMirzayanov, maybe there should be some restriction on downvotes, to prevent these downvote waves, because this situation kills the whole discussion here.

»
5 лет назад, # |
Rev. 2   Проголосовать: нравится -20 Проголосовать: не нравится

why too many downvotes on this post?

»
5 месяцев назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Thanks for the clarification. Can you further elaborate on how to take the arrays as input?

  • »
    »
    5 месяцев назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится

    Basically you take the line as input string, then you split on space to make an array, optionally you can type cast strings to number by .map() if your array is numeric.

    readline() will read the whole line as a string.