제출 #998094

#제출 시각아이디문제언어결과실행 시간메모리
998094MalixConstruction Project 2 (JOI24_ho_t2)C++14
100 / 100
751 ms22156 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<vi> vii; typedef pair<int,int> pi; typedef vector<pi> pii; typedef tuple<int,int,int> tii; #define REP(i,a,b) for(int i=a;i<b;i++) #define F first #define S second #define PB push_back #define MP make_pair #define LSOne(s) ((s)&(-s)) ll INF=1e18+10; int inf=1e9+10; ll M=1e9+7; vector<vector<pair<int,ll>>> a; void djikistra(vector<ll> &c,int s){ priority_queue<pi,vector<pi>,greater<pi>> pq; c[s]=0; pq.push({0,s}); while(!pq.empty()){ ll x=pq.top().F; int y=pq.top().S; pq.pop(); if(c[y]<x)continue; for(auto u:a[y]){ if(c[u.F]<=c[y]+u.S)continue; c[u.F]=c[y]+u.S; pq.push({c[u.F],u.F}); } } } int main() { //ios::sync_with_stdio(0); //cin.tie(0); //freopen("test_input.txt", "r", stdin); //freopen("test_output.txt", "w", stdout); int n,m;cin>>n>>m; int s,t;ll l,k;cin>>s>>t>>l>>k; s--;t--; a.resize(n); vector<ll> b(n,INF),c(n,INF); REP(i,0,m){ int x,y,z;cin>>x>>y>>z; x--;y--; a[x].PB({y,z}); a[y].PB({x,z}); } djikistra(b,s); djikistra(c,t); if(b[t]<=k){ cout<<((ll)n*(n-1))/2; return 0; } sort(c.begin(),c.end()); ll ans=0; REP(i,0,n)ans+=upper_bound(c.begin(),c.end(),k-l-b[i])-c.begin(); cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...