제출 #1028473

#제출 시각아이디문제언어결과실행 시간메모리
1028473pcc선물상자 (IOI15_boxes)C++17
100 / 100
457 ms255148 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; #define ll long long vector<int> lv,rv; vector<ll> ldp,rdp; vector<ll> get_dp(vector<int>& v,int K){ vector<ll> re(v.size(),0); for(int i = 0;i<v.size();i++){ if(i<K)re[i] = v[i]*2; else re[i] = v[i]*2+re[i-K]; } return re; } long long delivery(int N, int K, int L, int P[]) { for(int i = 0;i<N;i++){ if(P[i]*2<=L)lv.push_back(P[i]); else rv.push_back(L-P[i]); } reverse(rv.begin(),rv.end()); ldp = get_dp(lv,K);rdp = get_dp(rv,K); for(auto &i:rv)i = L-i; if(lv.empty())return rdp.back(); else if(rv.empty())return ldp.back(); int pt = 0; ll ans = ldp.back()+rdp.back(); for(int i = rv.size()-1;i>=0;i--){ while(pt<lv.size()&&(int)lv.size()-pt+(int)rv.size()-i>K)pt++; if(pt == lv.size())break; ll tans = (pt?ldp[pt-1]:0ll)+(i?rdp[i-1]:0ll)+L; ans = min(tans,ans); } return ans; }

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

boxes.cpp: In function 'std::vector<long long int> get_dp(std::vector<int>&, int)':
boxes.cpp:11:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   11 |  for(int i = 0;i<v.size();i++){
      |                ~^~~~~~~~~
boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:30:23: warning: conversion from 'std::vector<int>::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion]
   30 |  for(int i = rv.size()-1;i>=0;i--){
      |              ~~~~~~~~~^~
boxes.cpp:31:11: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |   while(pt<lv.size()&&(int)lv.size()-pt+(int)rv.size()-i>K)pt++;
      |         ~~^~~~~~~~~~
boxes.cpp:32:9: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |   if(pt == lv.size())break;
      |      ~~~^~~~~~~~~~~~
#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...