Submission #8345937
Source Code Expand
/******************************************************************************
Welcome to GDB Online.
GDB online is an online compiler and debugger tool for C, C++, Python, Java, PHP, Ruby, Perl,
C#, VB, Swift, Pascal, Fortran, Haskell, Objective-C, Assembly, HTML, CSS, JS, SQLite, Prolog.
Code, Compile, Run and Debug online from anywhere in world.
*******************************************************************************/
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int MAXN = 1E5+2;
const int MOD = 1e9+7;
int n, m;
int s, t;
vector<pair<int, int> > g[MAXN];
vector<int> ds(MAXN, -1), dt(MAXN, -1), cnts(MAXN, 0), cntt(MAXN, 0);
priority_queue<pair<int, int> > pq;
void SP(int src, vector<int>& dist, vector<int>& cnt){
dist[src] = 0; cnt[src] = 1;
pq.push({0, src});
while(!pq.empty()){
int d = -pq.top().first, u= pq.top().second; pq.pop();
if(d > dist[u]) continue;
for(pair<int, int> coup : g[u]){
int v = coup.first, w = coup.second;
if(dist[v] == -1 || (dist[v] > dist[u]+w)){
dist[v] = dist[u]+w;
cnt[v] = 1;
pq.push({-dist[v], v});
}
else if(dist[v] == dist[u]+w){
cnt[v] += cnt[u];
cnt[v]%= MOD;
}
}
}
}
signed main()
{
cin >>n >> m;
cin >> s >> t;
for(int i=1;i <= m; ++i){
int u, v, w; cin >> u >> v >> w;
g[u].push_back({v, w});
g[v].push_back({u, w});
}
SP(s, ds, cnts); SP(t, dt, cntt);
int ans = (cnts[t]*cntt[s])%MOD;
for(int u=1; u<= n; ++u){
for(pair<int, int> v : g[u]){
if(ds[u] + dt[v.first] + v.second == ds[t] && \
abs(ds[u] - dt[v.first]) < v.second){
ans += MOD-(((cnts[u]*cntt[v.first])%MOD)*((cnts[u]*cntt[v.first])%MOD))%MOD;
ans %= MOD;
}
}
if(ds[u] + dt[u] == ds[t] && ds[u] == dt[u]){
ans += MOD-(((cnts[u]*cntt[u])%MOD)*((cnts[u]*cntt[u])%MOD))%MOD;
ans %= MOD;
}
}
cout << ans;
}
Submission Info
Submission Time |
|
Task |
E - Avoiding Collision |
User |
tRuNgSeO |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
2206 Byte |
Status |
WA |
Exec Time |
321 ms |
Memory |
18288 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
0 / 700 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample01.txt, sample02.txt, sample03.txt, sample04.txt |
All |
01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, sample01.txt, sample02.txt, sample03.txt, sample04.txt |
Case Name |
Status |
Exec Time |
Memory |
01.txt |
AC |
283 ms |
18288 KB |
02.txt |
AC |
296 ms |
17148 KB |
03.txt |
WA |
312 ms |
16512 KB |
04.txt |
WA |
297 ms |
16384 KB |
05.txt |
WA |
318 ms |
17148 KB |
06.txt |
WA |
230 ms |
13824 KB |
07.txt |
WA |
298 ms |
17272 KB |
08.txt |
AC |
144 ms |
11008 KB |
09.txt |
WA |
304 ms |
16512 KB |
10.txt |
WA |
306 ms |
16384 KB |
11.txt |
AC |
321 ms |
16512 KB |
12.txt |
AC |
319 ms |
16384 KB |
13.txt |
WA |
287 ms |
17272 KB |
14.txt |
WA |
282 ms |
17272 KB |
15.txt |
WA |
297 ms |
17272 KB |
16.txt |
WA |
305 ms |
17148 KB |
17.txt |
WA |
309 ms |
17272 KB |
18.txt |
WA |
304 ms |
17276 KB |
sample01.txt |
AC |
4 ms |
5760 KB |
sample02.txt |
AC |
4 ms |
5760 KB |
sample03.txt |
AC |
4 ms |
5760 KB |
sample04.txt |
AC |
4 ms |
5760 KB |