Submission details
Task:Manhattan sightseeing
Sender:aalto25e_002
Submission time:2025-10-01 17:21:08 +0300
Language:C++ (C++17)
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'uint64_t score(uint64_t, uint64_t)':
input/code.cpp:15:15: error: 'ulabs' was not declared in this scope; did you mean 'llabs'?
   15 |          nb = ulabs(x[i] - my_x) + ulabs(y[i] - my_y);
      |               ^~~~~
      |               llabs

Code

#include <stdint.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <inttypes.h>
uint64_t *x;
uint64_t *y;
uint64_t n;

uint64_t score(uint64_t my_x, uint64_t my_y){
    uint64_t maxs = 0;
    uint64_t nb = 0;
    for (uint64_t i = 0; i < n; i++){
         nb = ulabs(x[i] - my_x) + ulabs(y[i] - my_y);
         maxs = (nb > maxs) ? nb : maxs;
    }
    // printf("mins = %ld\n", maxs);
    return maxs;
}

int main() {
    if (scanf("%ld", &n) == 0)
        return EXIT_FAILURE;

    x = (uint64_t*) malloc(n * sizeof(uint64_t));
    y = (uint64_t*) malloc(n * sizeof(uint64_t));

    // main algo

    uint64_t minx = UINT64_MAX;
    uint64_t miny = UINT64_MAX;
    uint64_t maxx = 0;
    uint64_t maxy = 0;

    for (uint64_t i = 0; i < n; i++){
        // printf("minx:%lu miny:%lu maxx:%lu maxy:%lu\n", minx, miny, maxx, maxy);
        if (scanf("%lu %lu", x + i, y + i) == 0)
            return EXIT_FAILURE;
        // printf("x:%ld y:%ld", x[i], y[i]);
        minx = (minx < x[i]) ? minx : x[i];
        miny = (miny < y[i]) ? miny : y[i];
        maxx = (maxx > x[i]) ? maxx : x[i];
        maxy = (maxy > y[i]) ? maxy : y[i];
        // printf("minx:%lu miny:%lu maxx:%lu maxy:%lu\n", minx, miny, maxx, maxy);
    }

    uint64_t midx = (minx + maxx) / 2;
    uint64_t midy = (miny + maxy) / 2;

    // printf("minx:%ld miny:%ld maxx:%ld maxy:%ld\n", minx, miny, maxx, maxy);

    // printf("%ld %ld\n", midx, midy);

    uint64_t resx = midx;
    uint64_t resy = midy;
    uint64_t mini = score(midx, midy);
    // printf("mins = %ld\n", mini);
    if (score(midx + 1, midy) < mini){
        mini = score(midx + 1, midy);
        // printf("bmins = %ld\n", mini);
        resx = midx + 1;
        resy = midy;
    }
    if (score(midx, midy + 1) < mini){
        mini = score(midx, midy + 1);
        // printf("cmins = %ld\n", mini);
        resx = midx;
        resy = midy + 1;
    }
    if (score(midx + 1, midy + 1) < mini){
        mini = score(midx + 1, midy + 1);
        // printf("dmins = %ld\n", mini);
        resx = midx + 1;
        resy = midy + 1;
    }

    printf("%ld %ld\n", resx, resy);


    return EXIT_SUCCESS;
}