#include<bits/stdc++.h>
#define LL long long
#define RG register
using namespace std;
template<class T> inline void read(T &x) {
x = 0; RG char c = getchar(); bool f = 0;
while (c != '-' && (c < '0' || c > '9')) c = getchar(); if (c == '-') c = getchar(), f = 1;
while (c >= '0' && c <= '9') x = x*10+c-48, c = getchar();
x = f ? -x : x;
return ;
}
template<class T> inline void write(T x) {
if (!x) {putchar(48);return ;}
if (x < 0) x = -x, putchar('-');
int len = -1, z[20]; while (x > 0) z[++len] = x%10, x /= 10;
for (RG int i = len; i >= 0; i--) putchar(z[i]+48);return ;
}
const int N = 1e5 + 10;
const LL inf = 1e16;
struct node {
int t, pos;
LL val;
bool operator < (const node &z) const {
return t > z.t;
}
};
priority_queue<node> q;
int n, m, cur[N];
LL A, B, C;
struct Pair {
int to, p, q;
bool operator < (const Pair &z) const {
return p < z.p;
}
};
vector<Pair> e[N];
map<int, LL> f[N];
void solve() {
f[1][0] = 0;
q.push((node) {0, 1, 0});
LL ans = inf;
while (!q.empty()) {
int u = q.top().pos, t = q.top().t; LL val = q.top().val; q.pop();
if (val != f[u][t]) continue;
if (u == n) ans = min(ans, val + t);
while (cur[u] < e[u].size() && e[u][cur[u]].p < t) cur[u]++;
for (int i = cur[u]; i < e[u].size(); i++) {
int v = e[u][i].to, T = e[u][i].q;
LL V = val + A * (e[u][i].p - t) * (e[u][i].p - t) + B * (e[u][i].p - t) + C;
//printf("%d %d %d %d\n", v, T, V, f[v][T]);
if (f[v][T] > V) {
f[v][T] = V;
q.push((node) {T, v, V});
}
}
}
printf("%lld\n", ans);
}
int main() {
read(n), read(m), read(A), read(B), read(C);
for (int i = 1, x, y, p, q; i <= m; i++) {
read(x), read(y), read(p), read(q);
f[y][q] = inf;
e[x].push_back((Pair) {y, p, q});
}
for (int i = 1; i <= n; i++) sort(e[i].begin(), e[i].end());
solve();
return 0;
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 1.072 ms | 6 MB + 944 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #2 | 1.099 ms | 6 MB + 944 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #3 | 1.106 ms | 6 MB + 944 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #4 | 1.098 ms | 6 MB + 944 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #5 | 1.87 ms | 7 MB + 224 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #6 | 2 ms | 7 MB + 288 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #7 | 2.014 ms | 7 MB + 260 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #8 | 2.054 ms | 7 MB + 296 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #9 | 2.161 ms | 7 MB + 344 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #10 | 1.766 ms | 7 MB + 232 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #11 | 1.859 ms | 7 MB + 204 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #12 | 2.035 ms | 7 MB + 276 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #13 | 1.922 ms | 7 MB + 232 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #14 | 2.093 ms | 7 MB + 256 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #15 | 176.132 ms | 20 MB + 564 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #16 | 234.764 ms | 32 MB + 964 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #17 | 99.171 ms | 22 MB + 712 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #18 | 71.223 ms | 20 MB + 112 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #19 | 869.165 ms | 50 MB + 912 KB | Accepted | Score: 5 | 显示更多 |
| Testcase #20 | 74.467 ms | 20 MB + 516 KB | Accepted | Score: 5 | 显示更多 |