제출 #1109380

#제출 시각아이디문제언어결과실행 시간메모리
1109380Ludissey나일강 (IOI24_nile)C++17
컴파일 에러
0 ms0 KiB
#include "nile.h"
#define int long long
#include <bits/stdc++.h>
#define sz(a) (int)a.size()
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
 
using namespace std;

vector<int> parent;
vector<int> sz;
vector<int> mn;
long long sm=0;

int getParent(int x){
  if(parent[x]==x) return x;
  return parent[x]=getParent(parent[x]);
}

void unite(int a, int b){
  a=getParent(a); b=getParent(b);
  if(a==b) return;
  parent[b]=a;
  if(sz[a]<sz[b]) swap(a,b);
  if(sz[a]%2) sm-=mn[a];
  if(sz[b]%2) sm-=mn[b];
  sz[a]+=sz[b];
  mn[a]=min(mn[a],mn[b]);
  if(sz[a]%2) sm+=mn[a];
}

std::vector<long long> calculate_costs(std::vector<signed> W, std::vector<signed> A,  std::vector<signed> B, std::vector<signed> E) {
  int q = sz(E);
  int n=sz(W);
  mn.resize(n); sz.resize(n); parent.resize(n);
  vector<pair<int,int>> e(q);
  vector<pair<int,pair<int,int>>> a(n);
  for (int i = 0; i < n; i++) e[i]={E[i],i};
  for (int i = 0; i < n; i++) a[i]={W[i],{A[i],B[i]}};
  sort(all(a));
  sort(all(e));
  vector<pair<int,int>> df(n-1);
  for (int i = 0; i < n-1; i++) df[i]={a[i+1].first-a[i].first,i};
  sm=0;
  for (int i = 0; i < n; i++)
  {
    sm+=a[i].second.first;
    sz[i]=1;
    parent[i]=i;
    mn[i]=a[i].second.first-a[i].second.second;
  }
  sort(all(df));
  std::vector<long long> R(q, 0);
  int j=0;
  for (int i = 0; i < q; i++)
  {
    while(j<n-1){
      if(df[j].first>e[i].first) break;
      unite(df[j].second,df[i].second+1);
      j++;
    }
    R[e[i].second]=sm;
  }
  
  return R;
}

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

nile.cpp:2:13: error: 'long' and 'short' specified together
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long' and 'short' specified together
    2 | #define int long long
      |             ^~~~
nile.cpp:2:13: error: 'long' and 'short' specified together
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long' and 'short' specified together
    2 | #define int long long
      |             ^~~~
nile.cpp:2:13: error: 'long' and 'short' specified together
    2 | #define int long long
      |             ^~~~
In file included from /usr/include/c++/10/cmath:45,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:41,
                 from nile.cpp:3:
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:13: error: 'long long long' is too long for GCC
    2 | #define int long long
      |             ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
nile.cpp:2:18: error: 'long long long' is too long for GCC
    2 | #define int long long
      |                  ^~~~
/var/local/li