Submission #127295

#TimeUsernameProblemLanguageResultExecution timeMemory
127295ekremBoxes with souvenirs (IOI15_boxes)C++98
70 / 100
489 ms192176 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; cvp = ans = son[0]; int opt = 0; for(int i = -1; i < n; i++){ // cvp = son[0]; // opt = 0; int bas = 0, son = (n - i - 1)/n + 1; while(bas < son){ if(ansver(i, i + 1 + orta*k) >= ansver(i, i + 1 + k + orta*k)) 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 << endl << endl; // cout << i << " " << opt << " " << cvp << endl; ans = min(ans, ansver(i, i + 1 + orta*k)); } 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:35:7: warning: declaration of 'bas' shadows a global declaration [-Wshadow]
   int bas = 0, son = (n - i - 1)/n + 1;
       ^~~
boxes.cpp:19:20: note: shadowed declaration is here
 ll k, l, cvp, ans, bas[N], son[N];
                    ^~~
boxes.cpp:35:16: warning: declaration of 'son' shadows a global declaration [-Wshadow]
   int bas = 0, son = (n - i - 1)/n + 1;
                ^~~
boxes.cpp:19:28: note: shadowed declaration is here
 ll k, l, cvp, ans, bas[N], son[N];
                            ^~~
boxes.cpp:37:23: warning: conversion to 'int' from 'll {aka long long int}' may alter its value [-Wconversion]
    if(ansver(i, i + 1 + orta*k) >= ansver(i, i + 1 + k + orta*k))
                 ~~~~~~^~~~~~~~
boxes.cpp:37:56: warning: conversion to 'int' from 'll {aka long long int}' may alter its value [-Wconversion]
    if(ansver(i, i + 1 + orta*k) >= ansver(i, i + 1 + k + orta*k))
                                              ~~~~~~~~~~^~~~~~~~
boxes.cpp:51:34: warning: conversion to 'int' from 'll {aka long long int}' may alter its value [-Wconversion]
   ans = min(ans, ansver(i, i + 1 + orta*k));
                            ~~~~~~^~~~~~~~
boxes.cpp:31:6: warning: unused variable 'opt' [-Wunused-variable]
  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...