제출 #1251912

#제출 시각아이디문제언어결과실행 시간메모리
1251912aritro_Finding Routers (IOI20_routers)C++20
컴파일 에러
0 ms0 KiB
#include<bits/stdc++.h>
using namespace std;

typedef long long ll;
#define int ll
#define endl '\n'
#define pb push_back
#define ff first
#define ss second
#define all(a) a.begin(),a.end()

const int MOD=1000000007;

#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) (a*(b/gcd(a,b)))

#define fraction(x); cout.unsetf(ios::floatfield); cout.precision(x); cout.setf(ios::fixed,ios::floatfield);
#define file(); freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);


static int l, n, q;
static std::vector<int> p;
static std::vector<int> answer;
static int queries = 0;

int use_detector(int x)
{
	queries++;
    assert(x >= 0 && x <= l);
    std::vector<int>::iterator left, right;
    right = std::upper_bound(p.begin(), p.end(), x);
    left = std::prev(right);

    if (right == p.end()) {
        return n - 1;
    } else if ((x - *left) <= (*right - x)){
        return std::distance(p.begin(), left);
    } else {
        return std::distance(p.begin(), right);
    }
}

vector<int> find_routers(int mx, int n, int q){
    //call with: use_detector(x);
    //solve for: 2 routers
    int l=0,r=mx,mid;
    int ans=0;
    while(l<=r){
        mid=(l+r)/2;
        int tem=use_detector(mid);
        if(tem==0) ans=mid,l=mid+1;
        else r=mid-1;
    }
    //cout<<"ANS: "<<(((ans+3)/2)+ans)+1<<endl;
    return {0,(((ans+1)/2)+ans)+1};
}

컴파일 시 표준 에러 (stderr) 메시지

/usr/bin/ld: /tmp/cc1RMree.o: in function `main':
grader.cpp:(.text.startup+0x21d): undefined reference to `find_routers(int, int, int)'
collect2: error: ld returned 1 exit status