CSES - Datatähti 2023 alku - Results
Submission details
Task:Lehmät
Sender:raikas
Submission time:2022-10-31 18:50:06 +0200
Language:Node.js
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED28
#2ACCEPTED72
Test results
testverdicttimegroup
#1ACCEPTED0.11 s1, 2details
#2ACCEPTED0.11 s1, 2details
#3ACCEPTED0.11 s1, 2details
#4ACCEPTED0.11 s1, 2details
#5ACCEPTED0.11 s1, 2details
#6ACCEPTED0.11 s2details
#7ACCEPTED0.11 s2details
#8ACCEPTED0.11 s2details
#9ACCEPTED0.11 s2details

Code

var readline = require("readline");

var r = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  terminal: false,
});

let lineNumber = 0;

//let x = 0;
let y = 0;

let map = [];

r.on("line", function (line) {
  //console.log(lineNumber);
  if (lineNumber == 0) {
    const items = line.split(" ");
    // x = parseInt(items[1]);
    y = parseInt(items[0]);
    lineNumber++;
    return;
  }
  map.push(line.split(""));
  if (lineNumber >= y) {
    calculate();
    return;
  }
  lineNumber++;
});

function calculate() {
  // First lets calculate from top to bottom
  for (let i = 0; i < map.length; i++) {
    const ogMap = [...map];
    map.splice(i, 1);
    if (ogMap[i].includes("*")) break;
    i--;
  }
  // Same but from bottom
  for (let i = map.length - 1; i > 0; i--) {
    map.splice(i, 1);
    if (map[i - 1].includes("*")) break;
  }

  // Horizontally
  for (let i = 0; i < map[0].length; i++) {
    const letters = map.map((i) => i[0]);
    map = map.map((i) => {
      i.shift();
      return i;
    });
    i--;
    if (letters.includes("*")) break;
  }

  // Right-to-left
  for (let i = map[0].length; i > 0; i--) {
    const letters = map.map((i) => i[i.length - 1]);
    map = map.map((i) => {
      i.pop();
      return i;
    });
    if (letters.includes("*")) break;
  }
  console.log(map.reduce((a, b) => a + b.filter((x) => x === "@").length, 0));
  process.exit();
}

Test details

Test 1

Group: 1, 2

Verdict: ACCEPTED

input
3 3
***
*.*
***

correct output
0

user output
0

Test 2

Group: 1, 2

Verdict: ACCEPTED

input
3 3
***
*@*
***

correct output
1

user output
1

Test 3

Group: 1, 2

Verdict: ACCEPTED

input
5 10
...@......
..******..
@.*@@@@*.@
..******..
...

correct output
4

user output
4

Test 4

Group: 1, 2

Verdict: ACCEPTED

input
10 10
@@...@.@@@
..@@.@@..@
@.*******@
..*@....*.
...

correct output
11

user output
11

Test 5

Group: 1, 2

Verdict: ACCEPTED

input
10 10
**********
*@@@@@@@@*
*@@@@@@@@*
*@@@@@@@@*
...

correct output
64

user output
64

Test 6

Group: 2

Verdict: ACCEPTED

input
100 100
.........................@.......

correct output
60

user output
60

Test 7

Group: 2

Verdict: ACCEPTED

input
100 100
..@@..........@......@....@@.....

correct output
1507

user output
1507

Test 8

Group: 2

Verdict: ACCEPTED

input
100 100
.@..@@..@@.@..@..@..@@..@..@.....

correct output
3348

user output
3348

Test 9

Group: 2

Verdict: ACCEPTED

input
100 100
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...

correct output
7225

user output
7225