#include<bits/stdc++.h>
#define For(a,b,c) for(int a=b;a<=c;++a)
#define Dor(a,b,c) for(int a=b;a>=c;--a)
#define LL long long
using namespace std;
const int N=100007,M=400007;
int n,m,T[N];
LL a,b,c,F[M];
struct D {
int x,y,p,q;
bool operator < (const D &_) const {
return p<_.p;
}
}A[M];
struct G {
LL x,y;
bool operator < (const G &_) const {
if(x==_.x) return y>_.y;
return x>_.x;
}
};
vector<G> V[N];
priority_queue<G> W[N];
bool beng(G a,G b,G c) {
return 1.*(b.y-a.y)*(c.x-b.x)>=1.*(c.y-b.y)*(b.x-a.x);
}
void Ins(vector<G> &S,int &tp,G x) {
while(tp>1&&beng(S[tp-1],S[tp],x)) --tp;
if(tp>1&&S[tp].x==x.x) return;
++tp;
while((int)S.size()<=tp) S.push_back((G){0,0});
S[tp]=x;
}
LL Qry(vector<G> &S,int &tp,LL k) {
while(tp>1&&k*S[tp-1].x+S[tp-1].y<=k*S[tp].x+S[tp].y) --tp;
if(tp) return k*S[tp].x+S[tp].y;
return 0;
}
int main() {
memset(F,60,sizeof(F));
LL ans=F[0];
scanf("%d%d%lld%lld%lld",&n,&m,&a,&b,&c);
For(i,1,m) scanf("%d%d%d%d",&A[i].x,&A[i].y,&A[i].p,&A[i].q);
sort(A+1,A+1+m);
For(i,1,m) {
int u=A[i].x,p=A[i].p,q=A[i].q;
if(u==1) F[i]=a*p*p+b*p+c;
while(!W[u].empty()&&W[u].top().x<=p) {
Ins(V[u],T[u],W[u].top());
W[u].pop();
}
F[i]=min(F[i],Qry(V[u],T[u],-2*a*p)+a*p*p+b*p+c);
W[A[i].y].push((G){q,a*q*q-b*q+F[i]});
}
For(i,1,m)
if(A[i].y==n) ans=min(ans,F[i]+A[i].q);
printf("%lld",ans);
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 1.156 ms | 8 MB + 452 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #2 | 1.171 ms | 8 MB + 452 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #3 | 1.164 ms | 8 MB + 452 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #4 | 1.171 ms | 8 MB + 452 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #5 | 1.948 ms | 8 MB + 616 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #6 | 1.937 ms | 8 MB + 636 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #7 | 1.937 ms | 8 MB + 612 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #8 | 1.938 ms | 8 MB + 628 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #9 | 1.933 ms | 8 MB + 612 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #10 | 1.932 ms | 8 MB + 636 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #11 | 1.996 ms | 8 MB + 616 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #12 | 2.019 ms | 8 MB + 632 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #13 | 2.018 ms | 8 MB + 624 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #14 | 1.998 ms | 8 MB + 620 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #15 | 53.35 ms | 16 MB + 764 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #16 | 54.69 ms | 17 MB + 296 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #17 | 55.429 ms | 16 MB + 780 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #18 | 54.523 ms | 17 MB + 344 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #19 | 53.682 ms | 16 MB + 864 KB | Wrong Answer | Score: 0 | 显示更多 |
| Testcase #20 | 56.203 ms | 17 MB + 336 KB | Wrong Answer | Score: 0 | 显示更多 |