Submission #1383145
Source Code Expand
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <cmath>
#include <iomanip>
using namespace std;
typedef pair<int, int> P;
#define rep(i, n) for (int i=0; i<(n); i++)
#define all(c) (c).begin(), (c).end()
#define uniq(c) c.erase(unique(all(c)), (c).end())
#define _1 first
#define _2 second
#define pb push_back
#define INF 1145141919
#define MOD 1000000007
int N, M, K;
int S, T;
vector<P> G[30000];
int X[101], F[101];
int D[2][30000];
long long f(int x) {
if (x <= 0) return 0;
return F[upper_bound(X, X+K+1, x)-X-1];
}
signed main() {
ios::sync_with_stdio(false); cin.tie(0);
cin >> N >> M >> K >> S >> T;
rep(i, M) {
int a, b, c;
cin >> a >> b >> c;
G[a].pb(P(b, c));
G[b].pb(P(a, c));
}
rep(i, K) cin >> X[i] >> F[i];
X[K] = INF;
rep(k, 2) {
rep(i, N) D[k][i] = INF;
int s = S;
if (k == 1) s = T;
priority_queue<P, vector<P>, greater<P> > q;
D[k][s] = 0;
q.push(P(0, s));
while (!q.empty()) {
int r = q.top()._1,
x = q.top()._2;
q.pop();
if (D[k][x] < r) continue;
for (auto p : G[x]) {
int t = p._1, d = p._2;
if (D[k][t] > r+d) {
D[k][t] = r+d;
q.push(P(D[k][t], t));
}
}
}
}
long long m = (1LL<<60);
rep(k, N) {
m = min(m, f(D[0][k]) + f(D[1][k]));
}
cout << m << "\n";
return 0;
}
Submission Info
Submission Time |
|
Task |
D - 切符分割 |
User |
funcsr |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
1559 Byte |
Status |
WA |
Exec Time |
32 ms |
Memory |
3316 KB |
Judge Result
Set Name |
direct |
small |
large |
Score / Max Score |
0 / 20 |
0 / 20 |
0 / 100 |
Status |
|
|
|
Set Name |
Test Cases |
direct |
direct/basic_case00, direct/basic_case01, direct/basic_case02, direct/basic_case03, direct/basic_case04 |
small |
small/append00, small/append01, small/append02, small/append03, small/append20, small/append21, small/append30, small/basic_case00, small/basic_case01, small/basic_case02, small/basic_case03, small/basic_case04, small/basic_case05, small/basic_case06, small/basic_case07, small/basic_case08, small/basic_case09, small/sample02, small/sample03, small/split00 |
large |
large/append10, large/append11, large/append12, large/large_case00, large/large_case01, large/large_case02, large/large_case03 |
Case Name |
Status |
Exec Time |
Memory |
sample00 |
AC |
2 ms |
1024 KB |
sample01 |
AC |
2 ms |
1024 KB |
direct/basic_case00 |
AC |
2 ms |
1024 KB |
direct/basic_case01 |
AC |
2 ms |
1024 KB |
direct/basic_case02 |
WA |
2 ms |
1024 KB |
direct/basic_case03 |
AC |
2 ms |
1024 KB |
direct/basic_case04 |
WA |
2 ms |
1024 KB |
large/append10 |
WA |
26 ms |
2816 KB |
large/append11 |
AC |
25 ms |
2816 KB |
large/append12 |
AC |
25 ms |
2816 KB |
large/large_case00 |
WA |
32 ms |
3192 KB |
large/large_case01 |
WA |
29 ms |
2956 KB |
large/large_case02 |
WA |
31 ms |
3080 KB |
large/large_case03 |
WA |
32 ms |
3316 KB |
small/append00 |
WA |
2 ms |
1024 KB |
small/append01 |
AC |
2 ms |
1024 KB |
small/append02 |
WA |
2 ms |
1024 KB |
small/append03 |
WA |
2 ms |
1024 KB |
small/append20 |
WA |
2 ms |
1024 KB |
small/append21 |
AC |
2 ms |
1024 KB |
small/append30 |
AC |
2 ms |
1024 KB |
small/basic_case00 |
AC |
2 ms |
1024 KB |
small/basic_case01 |
AC |
2 ms |
1024 KB |
small/basic_case02 |
WA |
2 ms |
1024 KB |
small/basic_case03 |
AC |
2 ms |
1024 KB |
small/basic_case04 |
WA |
2 ms |
1024 KB |
small/basic_case05 |
AC |
2 ms |
1024 KB |
small/basic_case06 |
AC |
2 ms |
1024 KB |
small/basic_case07 |
AC |
2 ms |
1024 KB |
small/basic_case08 |
WA |
2 ms |
1024 KB |
small/basic_case09 |
WA |
2 ms |
1024 KB |
small/sample02 |
AC |
2 ms |
1024 KB |
small/sample03 |
AC |
2 ms |
1024 KB |
small/split00 |
AC |
2 ms |
1024 KB |