제출 #1227447

#제출 시각아이디문제언어결과실행 시간메모리
1227447PVM_pvmNile (IOI24_nile)C++20
컴파일 에러
0 ms0 KiB
#include "nile.h"
#include<bits/stdc++.h>
using namespace std;
#define MAXN 100'007
int n;
struct art
{
    long long w,a,b;
} ar[MAXN];
bool cmp(art &a, art &b)
{
    return a.w<b.w;
}
long long dp[MAXN];
vector<long long> calculate_costs(vector<int> W, vector<int> A, vector<int> B, vector<int> E)
{

    int Q = (int)E.size();
    n=A.size();
    for (int q=0;q<n;q++) ar[q]={W[q],A[q],B[q]};
    sort(ar,ar+n,cmp);
    vector<long long> R(Q);
    for (int curq=0;curq<Q;curq++)
    {
        int d=E[curq];
        dp[0]=0;
        dp[1]=ar[0].a;
        for (int q=2;q<=n;q++) ///
        {
            dp[q]=dp[q-1]+ar[q-1].a;
            long long buf=0;
            for (int w=q-2;w>=max(0,q-3);w--)
            {
                if ((ar[q-1].w-ar[w].w)>d) break;
                long long cur=dp[w]+(ar[q-1].b)+ar[w].b+buf;
                if (cur<dp[q]) dp[q]=cur;
                buf+=ar[w].a;
            }
            //cout<<dp[q]<<" t ";
        }
        //cout<<"\n";
        R[curq]=dp[n];
    }
    return R;
}
#include "nile.h"
#include<bits/stdc++.h>
using namespace std;
#define MAXN 100'007
int n;
struct art
{
    long long w,a,b;
} ar[MAXN];
bool cmp(art &a, art &b)
{
    return a.w<b.w;
}
long long dp[MAXN];
vector<long long> calculate_costs(vector<int> W, vector<int> A, vector<int> B, vector<int> E)
{

    int Q = (int)E.size();
    n=A.size();
    for (int q=0;q<n;q++) ar[q]={W[q],A[q],B[q]};
    sort(ar,ar+n,cmp);
    vector<long long> R(Q);
    for (int curq=0;curq<Q;curq++)
    {
        int d=E[curq];
        dp[0]=0;
        dp[1]=ar[0].a;
        for (int q=2;q<=n;q++) ///
        {
            dp[q]=dp[q-1]+ar[q-1].a;
            long long buf=0;
            for (int w=q-2;w>=max(0,q-3);w--)
            {
                if ((ar[q-1].w-ar[w].w)>d) break;
                long long cur=dp[w]+(ar[q-1].b)+ar[w].b+buf;
                if (cur<dp[q]) dp[q]=cur;
                buf+=ar[w].a;
            }
            //cout<<dp[q]<<" t ";
        }
        //cout<<"\n";
        R[curq]=dp[n];
    }
    return R;
}

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

nile.cpp:50:5: error: redefinition of 'int n'
   50 | int n;
      |     ^
nile.cpp:5:5: note: 'int n' previously declared here
    5 | int n;
      |     ^
nile.cpp:51:8: error: redefinition of 'struct art'
   51 | struct art
      |        ^~~
nile.cpp:6:8: note: previous definition of 'struct art'
    6 | struct art
      |        ^~~
nile.cpp:54:3: error: conflicting declaration 'int ar [100007]'
   54 | } ar[MAXN];
      |   ^~
nile.cpp:9:3: note: previous declaration as 'art ar [100007]'
    9 | } ar[MAXN];
      |   ^~
nile.cpp:55:6: error: redefinition of 'bool cmp(art&, art&)'
   55 | bool cmp(art &a, art &b)
      |      ^~~
nile.cpp:10:6: note: 'bool cmp(art&, art&)' previously defined here
   10 | bool cmp(art &a, art &b)
      |      ^~~
nile.cpp:59:11: error: redefinition of 'long long int dp [100007]'
   59 | long long dp[MAXN];
      |           ^~
nile.cpp:14:11: note: 'long long int dp [100007]' previously declared here
   14 | long long dp[MAXN];
      |           ^~
nile.cpp:60:19: error: redefinition of 'std::vector<long long int> calculate_costs(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)'
   60 | vector<long long> calculate_costs(vector<int> W, vector<int> A, vector<int> B, vector<int> E)
      |                   ^~~~~~~~~~~~~~~
nile.cpp:15:19: note: 'std::vector<long long int> calculate_costs(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)' previously defined here
   15 | vector<long long> calculate_costs(vector<int> W, vector<int> A, vector<int> B, vector<int> E)
      |                   ^~~~~~~~~~~~~~~