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