Submission #1328327

#TimeUsernameProblemLanguageResultExecution timeMemory
1328327orgiloogiiRail (IOI14_rail)C++20
Compilation error
0 ms0 KiB
#include "rail.h"
#include <bits/stdc++.h>
using namespace std;
#define int long long
int getDistance(int i, int j);
void findLocation(int n, int first, int location[], int stype[]) {
    location[0] = first;
    stype[0] = 1;

    int dist[n] = {0};
    dist[0] = 0;
    int dist1[n] = {0};
    dist1[0] = 0;

    int mdx = 0;
    int mx = 0;
    for (int i = 1;i < n;i++) {
        dist[i] = getDistance(0, i);
        dist1[i] = getDistance(i, 0);
        if (dist[i] == dist1[i]) {
            stype[i] = 2;
            location[i] = first + dist[i];
            if (dist[i] > mx) {
                mx = dist[i];
                mdx = i;
            }
        }
        else {
            stype[i] = 1;
        }
    }
    for (int i = 1;i < n;i++) {
        if (stype[i] == 1) {
            location[i] = location[mdx] - getDistance(mdx, i);
        }
    }
}

Compilation message (stderr)

rail.cpp: In function 'void findLocation(long long int, long long int, long long int*, long long int*)':
rail.cpp:18:30: error: call of overloaded 'getDistance(int, long long int&)' is ambiguous
   18 |         dist[i] = getDistance(0, i);
      |                   ~~~~~~~~~~~^~~~~~
In file included from rail.cpp:1:
rail.h:9:7: note: candidate: 'int getDistance(int, int)'
    9 |   int getDistance(int i, int j);
      |       ^~~~~~~~~~~
rail.cpp:5:5: note: candidate: 'long long int getDistance(long long int, long long int)'
    5 | int getDistance(int i, int j);
      |     ^~~~~~~~~~~
rail.cpp:19:31: error: call of overloaded 'getDistance(long long int&, int)' is ambiguous
   19 |         dist1[i] = getDistance(i, 0);
      |                    ~~~~~~~~~~~^~~~~~
rail.h:9:7: note: candidate: 'int getDistance(int, int)'
    9 |   int getDistance(int i, int j);
      |       ^~~~~~~~~~~
rail.cpp:5:5: note: candidate: 'long long int getDistance(long long int, long long int)'
    5 | int getDistance(int i, int j);
      |     ^~~~~~~~~~~