| Task: | Lehmät | 
| Sender: | raikas | 
| Submission time: | 2022-10-31 18:50:06 +0200 | 
| Language: | Node.js | 
| Status: | READY | 
| Result: | 100 | 
| group | verdict | score | 
|---|---|---|
| #1 | ACCEPTED | 28 | 
| #2 | ACCEPTED | 72 | 
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.11 s | 1, 2 | details | 
| #2 | ACCEPTED | 0.11 s | 1, 2 | details | 
| #3 | ACCEPTED | 0.11 s | 1, 2 | details | 
| #4 | ACCEPTED | 0.11 s | 1, 2 | details | 
| #5 | ACCEPTED | 0.11 s | 1, 2 | details | 
| #6 | ACCEPTED | 0.11 s | 2 | details | 
| #7 | ACCEPTED | 0.11 s | 2 | details | 
| #8 | ACCEPTED | 0.11 s | 2 | details | 
| #9 | ACCEPTED | 0.11 s | 2 | details | 
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 | 
