Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const { triggerAsyncId } = require('async_hooks');
- const { toNamespacedPath, parse } = require('path');
- fs = require('fs')
- fs.readFile('input_test.txt', 'utf8', function (err,input) {
- if (err) {
- return console.log(err);
- }
- input = input.replace(/ -> /g, ";");
- input = input.trim().split('\n');
- var points = new Object();
- input.forEach(element => {
- element = element.split(";");
- var start = element[0].split(",");
- var end = element[1].split(",");
- if (start[0] === end[0] || start[1] === end[1]) {//linee verticali o orizzontali
- if (start[0] < end[0]) { //se la x di start e' minore dell'end
- for (var x=start[0]; x<=end[0]; x++) {
- if (start[1] < end[1]) {//se la y di start e' minore dell'end
- for (var y=start[1]; y<=end[1]; y++) {
- if (points[x+','+y] === undefined) points[x+','+y]=1;
- else points[x+','+y]++;
- }
- } else { //se la y di start e' maggiore dell'end
- for (var y=start[1]; y>=start[1]; y--) {
- if (points[x+','+y] === undefined) points[x+','+y]=1;
- else points[x+','+y]++;
- }
- }
- }
- } else {//se la x di start e' maggiore dell'end
- for (var x=start[0]; x>=end[0]; x--) {
- if (start[1] < end[1]) {//se la y di start e' minore dell'end
- for (var y=start[1]; y<=end[1]; y++) {
- if (points[x+','+y] === undefined) points[x+','+y]=1;
- else points[x+','+y]++;
- }
- } else { //se la y di start e' maggiore dell'end
- for (var y=start[1]; y>=start[1]; y--) {
- if (points[x+','+y] === undefined) points[x+','+y]=1;
- else points[x+','+y]++;
- }
- }
- }
- }
- }
- });
- var count = 0;
- for (var coord in points) {
- if (points[coord] > 1) count++;
- }
- console.log(count);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement