제출 #511223

#제출 시각아이디문제언어결과실행 시간메모리
511223AdamGS선물상자 (IOI15_boxes)C++14
100 / 100
501 ms224904 KiB
#include "boxes.h" #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; #define rep(a, b) for(int a = 0; a < (b); ++a) #define st first #define nd second #define pb push_back #define all(a) a.begin(), a.end() long long delivery(int N, int K, int L, int V[]) { ll n=N, k=K, l=L, T[n], ans=0; rep(i, n) T[i]=V[i]; int p=0; while(p<n && T[p]<=l/2) ++p; for(int i=p-1; i>=0; i-=k) ans+=2*T[i]; for(int i=p; i<n; i+=k) ans+=2*(l-T[i]); ll suf[n+1]; suf[n]=0; for(int i=n-1; i>=0; --i) { suf[i]=0; if(i+k<n) suf[i]=suf[i+k]; if(T[i]>l/2) suf[i]+=2*(l-T[i]); else if(T[min(i+k-1, n-1)]<=l/2) suf[i]+=2*T[min(i+k-1, n-1)]; else suf[i]+=l; } ans=min(ans, suf[0]); rep(i, k) { if(T[i]<=l/2) ans=min(ans, 2*T[i]+suf[i+1]); else ans=min(ans, l+suf[i+1]); } return ans; }

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

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:16:24: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   16 |  for(int i=p-1; i>=0; i-=k) ans+=2*T[i];
      |                       ~^~~
boxes.cpp:17:21: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   17 |  for(int i=p; i<n; i+=k) ans+=2*(l-T[i]);
      |                    ~^~~
boxes.cpp:20:13: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   20 |  for(int i=n-1; i>=0; --i) {
      |            ~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...