Submission #998087

#TimeUsernameProblemLanguageResultExecution timeMemory
998087MalixConstruction Project 2 (JOI24_ho_t2)C++14
45 / 100
2071 ms27808 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; }; multiset<ll> st; REP(i,0,n)st.insert(c[i]); ll ans=0; REP(i,0,n){ int p=distance(st.begin(),st.upper_bound(k-l-b[i])); ans+=(ll)p;//cout<<p<<" "; } 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...