# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
575901 | JovanB | Discharging (NOI20_discharging) | C++17 | 265 ms | 87540 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));
}
void upd(int node, int l, int r, line g){
int mid = (l+r)/2;
if(g.eval(mid) < seg[node].eval(mid)){
swap(g, seg[node]);
}
Compilation message (stderr)
# | 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... |