CSES - Datatähti 2023 alku - Results
Submission details
Task:Lehmät
Sender:wolruso
Submission time:2022-11-02 18:32:13 +0200
Language:C++ (C++11)
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED28
#2ACCEPTED72
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1, 2details
#2ACCEPTED0.00 s1, 2details
#3ACCEPTED0.00 s1, 2details
#4ACCEPTED0.00 s1, 2details
#5ACCEPTED0.00 s1, 2details
#6ACCEPTED0.00 s2details
#7ACCEPTED0.00 s2details
#8ACCEPTED0.00 s2details
#9ACCEPTED0.00 s2details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:7:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    7 |     scanf("%u%u", &n, &m);
      |     ~~~~~^~~~~~~~~~~~~~~~

Code

#include <stdio.h>
#include <malloc.h>
#include <stdint.h>

int main(){
    uint32_t n, m;
    scanf("%u%u", &n, &m);
    char *line = (char*) malloc(sizeof(char) * m);
    size_t lineSize = m;
    uint32_t x, y, cowsFound;
    uint32_t startX = 0, endX = m, startY = 0, endY = n;

    y = 0;
    cowsFound = 0;
    while(getline(&line, &lineSize, stdin) != -1 && y < endY) {
        for(x = startX; x < endX; x++) {
            if(line[x] == '*') {
                if(startY == 0) {
                    startY = y + 1;
                }
                else if(y >= startY && (x + 1) < lineSize && line[x + 1] == '*') {
                    endY = y; // can also just 'break;' here
                    break;
                }
                if(startX == 0) {
                    startX = x + 1;
                }
                else if(x >= startX && (x + 1) < lineSize && line[x + 1] != '*') {
                    endX = x;
                    break; // rest of current row will be outside fence borders
                }
            }
            else if(line[x] == '@') {
                if(startX != 0 && startY != 0) { // if startX and startY of fence square has
                    cowsFound++;                 // been found yet
                }
            }
        }
        y++;
    }
    printf("%d\n", cowsFound);
    return 0;
}

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