Submission #127272

#TimeUsernameProblemLanguageResultExecution timeMemory
127272ekremBoxes with souvenirs (IOI15_boxes)C++98
50 / 100
2037 ms20196 KiB
#include "boxes.h" #include <bits/stdc++.h> #define st first #define nd second #define mp make_pair #define pb push_back #define sol (k+k) #define sag (k+k+1) #define orta ((bas+son)/2) #define coc g[node][i] #define mod 1000000007 #define inf 1000000009 #define N 1000005 using namespace std; typedef long long ll; typedef pair < int , int > ii; ll k, l, cvp, ans, bas[N], son[N]; ll ansver(int i, int j){ return ((i>=0)?bas[i]:0ll) + son[j] + 1ll*(j - i - 1 + k - 1)/k*l; } ll delivery(int n, int kk, int ll, int p[]) {k = kk;l = ll; for(int i = 0; i < n; i++) bas[i] = (i - k >= 0) ? bas[i - k] + p[i]*2ll : p[i]*2ll; for(int i = n - 1; i >= 0; i--) son[i] = (n > k + i) ? son[i + k] + (l - p[i])*2ll : (l - p[i])*2ll; ans = son[0]; for(int i = -1; i < n; i++){ cvp = son[0]; int opt = 0; // int bas = i + 1, son = n; // while(bas < son){ // if(ansver(i, orta) >= ansver(i, orta + 1)) // bas = orta + 1; // else // son = orta; // } for(int j = i + 1; j <= n; j += k){ // cout << i << " " << j << " = " << ansver(i, j) << endl; if(ansver(i, j) <= cvp){ cvp = ansver(i, j); opt = j; } } // cout << i << " " << opt << " " << cvp << endl; ans = min(ans, cvp); } return ans; }

Compilation message (stderr)

boxes.cpp: In function 'll delivery(int, int, int, int*)':
boxes.cpp:25:43: warning: declaration of 'll' shadows a global declaration [-Wshadow]
 ll delivery(int n, int kk, int ll, int p[]) {k = kk;l = ll;
                                           ^
boxes.cpp:16:19: note: shadowed declaration is here
 typedef long long ll;
                   ^~
boxes.cpp:40:32: warning: conversion to 'int' from 'll {aka long long int}' may alter its value [-Wconversion]
   for(int j = i + 1; j <= n; j += k){
                              ~~^~~~
boxes.cpp:32:21: warning: variable 'opt' set but not used [-Wunused-but-set-variable]
   cvp = son[0]; int opt = 0;
                     ^~~
#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...