Submission #996919

#TimeUsernameProblemLanguageResultExecution timeMemory
996919TgX_2Boxes with souvenirs (IOI15_boxes)C++17
10 / 100
1 ms2396 KiB
/*-----------------------------
        Author : TgX.2
       11Ti - K28 - CHV
-----------------------------*/
 
#ifndef TGX
    #include "boxes.h"
#endif // !TGX
 
 
#include <bits/stdc++.h>
using namespace std;
 
#define FOR(i,a,b) for(int i=(a), _b=(b);i<=_b;++i)
#define FORD(i,a,b) for(int i=(a), _b=(b);i>=_b;--i)
#define FORC(i,a,b,c) for(int i=(a), _b=(b), _c=(c);i<=_b;i+=_c)
#define FORSq(i,a,b) for(int i=(a), _b=(b);i*i<=_b;++i)
#define FORSt(i,s) for(int i=0, _s=(int)(s.size());i<_s;++i)
 
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define ers erase
#define ins insert
#define rvs reverse
 
#define len(x) (int)((x).size())
#define all(x) (x).begin(), (x).end()
#define alln(x,n) (x)+1, (x)+1+(n)
 
#define _ <<" "<<
#define __ << "\n"
#define ___ << " "
 
#define intmax 1e9
#define intmin -1e9
#define llongmax 1e18
#define llongmin -1e18
#define memo(a, val) memset((a), (val), sizeof((a)))
 
template<typename T1, typename T2> bool mini(T1 &a, T2 b)
    {if(a>b) a=b; else return 0; return 1;}
template<typename T1, typename T2> bool maxi(T1 &a, T2 b)
    {if(a<b) a=b; else return 0; return 1;}
 
const int maxn = 1e7 + 7;
long long b[maxn], c[maxn];
long long delivery(int n, int k, int l, int a[]) {
//    sort(alln(a, n));
 
    FOR(i, 1, n) {
        b[i] = min(l, a[i - 1] * 2);
        if (i > k)
            b[i] += b[i - k];
    }
 
    int ans = b[n];
 
    FORD(i, n, 1) {
        c[i] = min(l, (l - a[i - 1]) * 2);
        if (i + k <= n)
            c[i] += c[i + k];
        mini(ans, b[i - 1] + c[i]);
    }
  
    return ans;
}

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:58:18: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   58 |     int ans = b[n];
      |               ~~~^
boxes.cpp: In instantiation of 'bool mini(T1&, T2) [with T1 = int; T2 = long long int]':
boxes.cpp:64:34:   required from here
boxes.cpp:43:16: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
   43 |     {if(a>b) a=b; else return 0; return 1;}
      |                ^
#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...