제출 #481986

#제출 시각아이디문제언어결과실행 시간메모리
481986Lobo선물상자 (IOI15_boxes)C++17
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; const long long INFll = (long long) 1e18 + 10; const int INFii = (int) 1e9 + 10; typedef long long ll; typedef int ii; typedef long double dbl; #define endl '\n' #define sc second #define fr first #define mp make_pair #define pb push_back #define all(x) x.begin(), x.end() #define maxn 10000010 ll n, kt; ll dp1[maxn], x1[maxn]; ll dp2[maxn], x2[maxn]; int main() { ios::sync_with_stdio(false); cin.tie(0); //freopen("in.in", "r", stdin); //freopen("out.out", "w", stdout); ii N, K, L; cin >> N >> K >> L; vector<ii> p; for(ii i = 0; i < N; i++) { ii aa; cin >> aa; p.pb(aa); } ii n1 = 0; ii n2 = 0; kt = K; for(ii i = 1; i <= N; i++) { dp1[i] = dp2[i] = -1; x1[i] = p[i-1]; x2[i] = L-x1[i]; if(x1[i] <= x2[i]) { n1++; } else { n2++; } } reverse(x1+1,x1+1+n2); priority_queue<pair<ll,ll>, vector<pair<ll,ll>>, greater<pair<ll,ll>>> pq1; pq1.push(mp(0,0)); for(ii i = 1; i <= n1; i++) { ll ans = INFll; while(pq1.size() && pq1.top().sc < i-kt) pq1.pop(); ans = pq1.top().fr; dp1[i] = ans + 2*x1[i]; pq1.push(mp(dp1[i],i)); } priority_queue<pair<ll,ll>, vector<pair<ll,ll>>, greater<pair<ll,ll>>> pq2; pq2.push(mp(0,0)); for(ii i = 1; i <= n2; i++) { ll ans = INFll; while(pq2.size() && pq2.top().sc < i-kt) pq2.pop(); ans = pq2.top().fr; dp2[i] = ans + 2*x2[i]; pq2.push(mp(dp2[i],i)); } ll ans = dp1[n1]+dp2[n2]; for(ii i1 = n1-kt, i2 = n2; i1 <= n1; i1++, i2--) { ans = min(ans, dp1[i1] + dp2[i2] + L); } cout << ans << endl; }

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

boxes.cpp: In function 'int main()':
boxes.cpp:84:19: warning: conversion from 'll' {aka 'long long int'} to 'ii' {aka 'int'} may change value [-Wconversion]
   84 |     for(ii i1 = n1-kt, i2 = n2; i1 <= n1; i1++, i2--) {
      |                 ~~^~~
/usr/bin/ld: /tmp/ccCReNsB.o: in function `main':
grader.c:(.text.startup+0x0): multiple definition of `main'; /tmp/ccPs6S9A.o:boxes.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccCReNsB.o: in function `main':
grader.c:(.text.startup+0x1ef): undefined reference to `delivery(int, int, int, int*)'
collect2: error: ld returned 1 exit status