제출 #398126

#제출 시각아이디문제언어결과실행 시간메모리
398126MeGustaElArroz23선물상자 (IOI15_boxes)C++14
100 / 100
1103 ms449528 KiB
#include "boxes.h" #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<ll> vi; void debug(vi v){ for (int x:v) cerr << x << ' '; cerr << '\n'; } ll delivery(int n,int k, int l, int sections[]){ if (l==1) return 0; vi v(n); for (ll i=0;i<n;i++) v[i]=sections[i]; v.push_back(0); v.push_back(l); sort(v.begin(),v.end()); vi avances(k,0); vi sol(n+2,0); sol[0]=0; vi trusol(n+2,0); for (ll i=1;i<n+2;i++){ if(v[i]<=l/2){ avances[i%k]+=v[i]-v[i-1]; sol[i]=sol[i-1]+avances[i%k]; trusol[i]=2*sol[i]; } else{ if (i<=k) sol[i]=l; else sol[i]=trusol[i-k]+l; trusol[i]=sol[i]; } } for (ll i=0;i<n+2;i++) v[i]=l-v[i]; avances=vi(k,0); vi sol2(n+2,0); ll res=1e18; sol2[n+1]=0; vi trusol2(n+2,0); for (ll i=n;i>=0;i--){ if(v[i]<=l/2){ avances[i%k]+=v[i]-v[i+1]; sol2[i]=sol2[i+1]+avances[i%k]; trusol2[i]+=2*sol2[i]; } else{ if (i+k>n) sol2[i]=l; else sol2[i]=trusol2[i+k]+l; trusol2[i]+=sol2[i]; } } trusol[0]=0; trusol2[n+1]; for (ll i=0;i<n+1;i++) res=min(res,trusol[i]+trusol2[i+1]); return res; }

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

boxes.cpp: In function 'void debug(vi)':
boxes.cpp:10:16: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   10 |     for (int x:v) cerr << x << ' ';
      |                ^
#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...