# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
575196 | JovanB | Discharging (NOI20_discharging) | C++17 | 472 ms | 319876 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
const int N = 1000000;
const ll INF = 1000000000000000000LL;
ll a[N+5];
ll dp[N+5];
struct line{
ll k, n;
ll eval(int x){ return k*x + n; }
} seg[4*N+5];
ll query(int node, int l, int r, int i){
ll g = seg[node].eval(i);
if(l == r) return g;
int mid = (l+r)/2;
if(i <= mid) return min(g, query(node*2, l, mid, i));
return min(g, query(node*2+1, mid+1, r, i));
}
stack <tuple <line, int, int>> rev;
void brisi(int i){
while(!rev.empty() && get<2>(rev.top()) == i){
seg[get<1>(rev.top())] = get<0>(rev.top());
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |