제출 #899318

#제출 시각아이디문제언어결과실행 시간메모리
899318aykhn선물상자 (IOI15_boxes)C++17
100 / 100
515 ms372872 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; long long delivery(int N, int K, int L, int P[]) { vector<long long> v; v.push_back(0); for (long long i = (P[0] == 0); i < N; i++) v.push_back(P[i]); long long p[N + 5], s[N + 5]; p[0] = 0; for (long long i = 1; i < v.size(); i++) p[i] = p[max(0LL, i - K)] + v[i] * 2; s[v.size()] = 0; for (long long i = (long long)v.size() - 1; i >= 0; i--) s[i] = s[min((long long)v.size(), i + K)] + 2 * (L - v[i]); long long res = min(p[(long long)v.size() - 1], s[0]); if (K >= N) res = min(res, (long long)L); for (long long i = 0; i < v.size(); i++) { res = min(res, p[i] + s[i + 1]); res = min(res, p[i] + s[min((long long)v.size(), i + K + 1)] + L); } return res; }

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

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:12:29: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 |     for (long long i = 1; i < v.size(); i++) p[i] = p[max(0LL, i - K)] + v[i] * 2;
      |                           ~~^~~~~~~~~~
boxes.cpp:17:29: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |     for (long long i = 0; i < v.size(); 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...