# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1135056 | LeonidCuk | Building Bridges (CEOI17_building) | C++20 | 88 ms | 65340 KiB |
#include <bits/stdc++.h>
using namespace std;
struct line
{
long long int a,b;
};
vector<line>st;
long long int najdi(line l,long long int k)
{
return l.a*k+l.b;
}
void update(int i,int l,int r,line k)
{
int m=(l+r)/2;
if(k.a>st[i].a)swap(k,st[i]);
if(najdi(k,m)<najdi(st[i],m))
{
swap(k,st[i]);
if(l!=r)update(2*i,l,m,k);
}
else if(l!=r)
{
update(2*i+1,m+1,r,k);
}
}
long long int getsum(int i,int l,int r,long long int x)
{
int m=(l+r)/2;
if(l==r)return najdi(st[i],x);
if(x<=m)return min(najdi(st[i],x),getsum(i*2,l,m,x));
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |