제출 #163601

#제출 시각아이디문제언어결과실행 시간메모리
163601Knps4422선물상자 (IOI15_boxes)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #include "boxes.h" #define ll long long #define fr first #define sc second #define pb push_back using namespace std; ll n, L; ll pos[1000005]; ll cl[1000005], ct[1000005]; ll mid_of_circle; void find1(){ int l = 1 , r = n; int mid = (l+r)/2; while(l < r){ mid = (l+r)/2; if(pos[mid] >= L/2){ r = mid; }else{ l = mid+1; } } // l is the first position after the middle of the circle mid_of_circle = l; } int delivery(int n1,int k,int L1,int ps[]){ n = n1; L = L1; for(int i = 1; i <= n ; i++){ pos[i] = ps[i-1]; } // cl[i] - result if we take only the first i positions for(ll i = 1; i <= n ; i++){ cl[i] = cl[max((ll)0,i-k)] + 2*pos[i]; } // ct[i] - result if we take only the last positions from i to n for(ll i = n; i > 0 ; i--){ ct[i] = ct[min(n+1,i+k)] + 2*(L - pos[i]); } find1(); ll rez = 1e18+7; for(ll i = 0 ; i < mid_of_circle ; i++){ ll new_rez; for(ll j = 0; i + k*j <= n ; j++){ if(i + k*j + 1 >= mid_of_circle){ new_rez = cl[i] + j*L + ct[i + k*j + 1]; rez = min(rez,new_rez); } } } cout << rez << '\n'; }

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

boxes.cpp: In function 'void find1()':
boxes.cpp:14:18: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
  int l = 1 , r = n;
                  ^
boxes.cpp: In function 'int delivery(int, int, int, int*)':
boxes.cpp:27:5: error: ambiguating new declaration of 'int delivery(int, int, int, int*)'
 int delivery(int n1,int k,int L1,int ps[]){
     ^~~~~~~~
In file included from boxes.cpp:2:0:
boxes.h:4:11: note: old declaration 'long long int delivery(int, int, int, int*)'
 long long delivery(int N, int K, int L, int p[]);
           ^~~~~~~~
boxes.cpp:53:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^