Submission details
Task:Maalaus
Sender:NicholasAhman
Submission time:2025-11-03 19:31:27 +0200
Language:C++ (C++17)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
#40
Test results
testverdicttimegroup
#10.00 s1, 3, 4details
#20.00 s3, 4details
#30.00 s1, 3, 4details
#40.01 s2, 4details
#50.01 s2, 4details
#60.00 s3, 4details
#70.00 s3, 4details
#80.01 s4details
#90.01 s4details
#100.00 s1, 3, 4details
#110.00 s1, 3, 4details
#120.01 s2, 4details
#130.89 s2, 4details
#140.01 s4details
#150.01 s4details
#160.01 s4details
#170.01 s4details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:72:14: warning: format '%d' expects argument of type 'int', but argument 2 has type 'size_t' {aka 'long unsigned int'} [-Wformat=]
   72 |     printf("%d\n", idx);
      |             ~^     ~~~
      |              |     |
      |              int   size_t {aka long unsigned int}
      |             %ld
input/code.cpp:77:18: warning: format '%d' expects argument of type 'int', but argument 2 has type 'size_t' {aka 'long unsigned int'} [-Wformat=]
   77 |         printf("%d ", idx);
      |                 ~^    ~~~
      |                  |    |
      |                  int  size_t {aka long unsigned int}
      |                 %ld
input/code.cpp:84:18: warning: format '%d' expects argument of type 'int', but argument 2 has type 'size_t' {aka 'long unsigned int'} [-Wformat=]
   84 |         printf("%d ", idx);
      |                 ~^    ~~~
      |                  |    |
      |                  int  size_t {aka long unsig...

Code

#include <cstdlib>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>

int *output;
int *colors;

size_t width;
size_t height;
size_t color_count;

void draw_vertical(size_t x, int color) {
    for (size_t i = 0; i < height; i++) {
        colors[output[i * width + x - 1]]--;
        colors[color]++;

        output[i * width + x - 1] = color;
    }
}

void draw_horizontal(size_t y, int color) {
    for (size_t i = 0; i < width; i++) {
        colors[output[(y - 1) * width + i]]--;
        colors[color]++;

        output[(y - 1) * width + i] = color;
    }
}

int main(void) {
    char *input = (char *)malloc(1024*1024*8);
    const size_t len = read(0, input, 1024*1024*8);
    size_t idx = 0;

    size_t next_space = strchr(input, ' ') - input;
    input[next_space] = '\0';

    height = atoi(input);
    idx += next_space + 1;

    printf("%s\n", input + idx);

    next_space = strchr((input + idx), ' ') - (input + idx);
    (input + idx)[next_space] = '\0';
    width = atoi((input + idx));
    idx += next_space + 1;
    printf("%s\n", input + idx);

    next_space = strchr((input + idx), ' ') - (input + idx);
    (input + idx)[next_space] = '\0';
    color_count = atoi((input + idx));
    idx += next_space + 1;
    printf("%s\n", input + idx);

    next_space = strchr((input + idx), '\n') - (input + idx);
    (input + idx)[next_space] = '\0';
    size_t operations = atoi((input + idx));
    idx += next_space + 1;
    printf("%s\n", input + idx);

    colors = (int *)malloc(color_count * sizeof(int) + sizeof(int));
    output = (int *)malloc(height * width * sizeof(int));

    memset(output, 0, height * width * sizeof(int));

    for (size_t i = 0; i < color_count + 1; i++) {
        colors[i] = 0;
    }

    printf("%d\n", idx);
    for (size_t i = 0; i < operations; i++) {
        int rc = (input + idx)[0];
        idx += 2;

        printf("%d ", idx);

        next_space = strchr((input + idx), ' ') - (input + idx);
        (input + idx)[next_space] = '\0';
        size_t n = atoi((input + idx));
        idx += next_space + 1;

        printf("%d ", idx);

        if (i == operations - 1) {
            next_space = len - ((input + idx) - input) - 1;
        } else {
            next_space = strchr((input + idx), '\n') - (input + idx);
        }

        (input + idx)[next_space] = '\0';
        size_t color = atoi((input + idx));
        idx += next_space + 1;

        printf("%d %d: %d %d\n", idx, len, i, operations);
        
        if (rc == 'R') {
            draw_vertical(n, color);
        } else {
            draw_horizontal(n, color);
        }
    }

    for (size_t i = 1; i < color_count + 1; i++) {
        printf("%d ", colors[i]);
    }

    free(input);
    free(colors);
    free(output);

}

Test details

Test 1 (public)

Group: 1, 3, 4

Verdict:

input
3 4 4 4
R 1 1
C 3 4
R 2 2
R 1 1

correct output
4 4 0 1

user output
4 4 4
R 1 1
C 3 4
R 2 2
R 1 1
...

Feedback: Output is longer than expected

Test 2 (public)

Group: 3, 4

Verdict:

input
1000000000 1000000000 5 10
C 70724881 4
C 290904744 1
C 569311326 5
R 896293092 1
...

correct output
3999999991 1999999998 19999999...

user output
(empty)

Test 3

Group: 1, 3, 4

Verdict:

input
10 10 10 10
R 10 8
C 1 2
R 10 2
R 1 4
...

correct output
0 13 0 8 7 20 0 0 10 7

user output
10 10 10
R 10 8
C 1 2
R 10 2
R 1 4
...

Feedback: Output is longer than expected

Test 4

Group: 2, 4

Verdict:

input
1000000000 1000000000 1 200000
R 185082082 1
C 549662476 1
R 484749097 1
R 330334821 1
...

correct output
199984000629575

user output
1000000000 1 200000
R 185082082 1
C 549662476 1
R 484749097 1
R 330334821 1
...

Test 5

Group: 2, 4

Verdict:

input
1000000000 1000000000 1 200000
C 354072394 1
C 221236382 1
C 63527838 1
C 538599654 1
...

correct output
126261014543986

user output
1000000000 1 200000
C 354072394 1
C 221236382 1
C 63527838 1
C 538599654 1
...

Test 6

Group: 3, 4

Verdict:

input
1000000000 1000000000 2000 200...

correct output
999999400 2999997760 999999118...

user output
1000000000 2000 2000
C 900621455 1095
R 972684354 1712
C 609035599 1396
C 216089501 283
...

Test 7

Group: 3, 4

Verdict:

input
1000000000 1000000000 2000 200...

correct output
999999481 0 999999445 0 0 0 0 ...

user output
1000000000 2000 2000
C 779946823 134
C 339866811 1342
R 672527591 1322
C 907343501 757
...

Test 8

Group: 4

Verdict:

input
1000000000 1000000000 200000 2...

correct output
0 0 999997829 0 1999872519 199...

user output
1000000000 200000 200000
C 947476077 66396
R 821229125 12851
R 370109404 21532
C 595052070 19895
...

Test 9

Group: 4

Verdict:

input
1000000000 1000000000 200000 2...

correct output
999986843 0 0 999966411 999971...

user output
1000000000 200000 200000
R 703814781 49329
C 494777247 160431
C 930348612 84484
R 850343346 187260
...

Test 10

Group: 1, 3, 4

Verdict:

input
1 10 10 10
C 1 10
R 1 4
C 9 3
R 1 7
...

correct output
1 0 0 0 0 0 0 9 0 0

user output
10 10 10
C 1 10
R 1 4
C 9 3
R 1 7
...

Feedback: Output is longer than expected

Test 11

Group: 1, 3, 4

Verdict:

input
10 1 10 10
R 4 6
R 5 1
R 4 2
R 3 9
...

correct output
0 0 0 0 0 0 0 10 0 0

user output
(empty)

Test 12

Group: 2, 4

Verdict:

input
1 1000000000 1 200000
C 298761159 1
R 1 1
C 831911362 1
C 25171734 1
...

correct output
1000000000

user output
1000000000 1 200000
C 298761159 1
R 1 1
C 831911362 1
C 25171734 1
...

Test 13

Group: 2, 4

Verdict:

input
1000000000 1 1 200000
R 68306849 1
C 1 1
C 1 1
R 485427101 1
...

correct output
1000000000

user output
1 1 200000
R 68306849 1
C 1 1
C 1 1
R 485427101 1
...

Test 14

Group: 4

Verdict:

input
1000000000 1000000000 100 2000...

correct output
2003899199298 2016897879262 20...

user output
1000000000 100 200000
R 446221746 75
C 263315019 9
C 723601804 2
R 918747013 4
...

Test 15

Group: 4

Verdict:

input
1000000000 1000000000 100 2000...

correct output
1267960483393 1326958437362 12...

user output
1000000000 100 200000
R 970089434 94
R 280727716 4
C 457188331 30
R 655221329 65
...

Test 16

Group: 4

Verdict:

input
1000000000 1000000000 10000 20...

correct output
26998778013 13999380552 239989...

user output
1000000000 10000 200000
C 921893439 7732
C 870427685 3663
R 149005110 3098
R 957603742 2220
...

Test 17

Group: 4

Verdict:

input
1000000000 1000000000 10000 20...

correct output
7999699356 8999760379 12999665...

user output
1000000000 10000 200000
R 977741638 9054
R 787746867 6491
C 363010585 4188
C 971790810 9092
...