제출 #1286930

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

const long long MAXN = 1e5+7;
const long long INF = 1e18;
pair<long long, long long> tt[MAXN];
vector<pair<long long, long long> > a;
long long dp[MAXN], opt[MAXN], n, m;

bool cmp(pair<long long, long long> a1, pair<long long, long long> b1)
{
    if(a1.first < b1.first) return true;
    if(a1.first > b1.first) return false;
    if(a1.second > b1.second) return true;
    return false;
}

void f(long long l, long long r, long long ol, long long orr, long long kk)
{
    long long mid = (l+r)/2;
    long long mini = INF, minii = -1;
    for(long long i = ol; i <= orr; i++)
    {
        long long curr = dp[i-1]+(a[i].second-a[i].first+1)*(a[i].second-a[i].first+1)-max(0LL, a[i-1].second-a[i].first)*max(0LL, a[i-1].second-a[i].first);
        if(curr < mini)
        {
            mini = curr;
            minii = i;
        }
    }
    opt[mid] = minii;
    dp[mid] = mini;
    f(l, mid-1, ol, minii, kk);
    f(mid+1, r, minii, orr, kk);
    return;
}

long long take_photos(long long nn, long long mm, long long k, vector<long long> r, vector<long long> c)
{
    n = nn;
    m = mm;
    for(long long i = 1; i <= n; i++)
    {
        tt[i].first = min(c[i-1], r[i-1]);
        tt[i].second = max(c[i-1], r[i-1]);
    }
    sort(tt+1, tt+n+1, cmp);
    long long maxi = -1;
    for(long long i = 1; i <= n; i++)
    {
        if(tt[i].second > maxi)
        {
            maxi = tt[i].second;
            a.push_back(tt[i]);
        }
    }
    for(long long i = 0; i < a.size(); i++)
    {
        dp[i] = (a[i].second-a[0].first+1)*(a[i].second-a[0].first+1);
    }
    for(long long i = 2; i <= k; i++)
    {
        f(0, a.size()-1, 0, a.size()-1, i);
    }
    return dp[a.size()-1];
}

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

aliens.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
aliens_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
/usr/bin/ld: /tmp/cc186yz7.o: in function `main':
grader.cpp:(.text.startup+0xff): undefined reference to `take_photos(int, int, int, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status