제출 #1262358

#제출 시각아이디문제언어결과실행 시간메모리
1262358namhhConstruction Project 2 (JOI24_ho_t2)C++20
100 / 100
151 ms24920 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define pii pair<int,int> #define fi first #define se second const int N = 2e5+5; int n,m,s,t,l,k,d[N][2],bits[2*N]; vector<pii>adj[N]; vector<int>rem; map<int,int>mp; void update(int u){ while(u <= mp.size()){ bits[u]++; u += u & (-u); } } int get(int u){ int res = 0; while(u > 0){ res += bits[u]; u -= u & (-u); } return res; } void dijkstra(int type){ for(int i = 1; i <= n; i++) d[i][type] = 1e18; priority_queue<pii,vector<pii>,greater<pii>>pq; if(type == 0){ d[s][type] = 0; pq.push({0,s}); } else{ d[t][type] = 0; pq.push({0,t}); } while(!pq.empty()){ auto[c,u] = pq.top(); pq.pop(); if(c > d[u][type]) continue; for(auto[v,w]: adj[u]){ if(d[v][type] > c+w){ d[v][type] = c+w; pq.push({d[v][type],v}); } } } } signed main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n >> m >> s >> t >> l >> k; for(int i = 1; i <= m; i++){ int u,v,c; cin >> u >> v >> c; adj[u].push_back({v,c}); adj[v].push_back({u,c}); } dijkstra(0); dijkstra(1); if(d[t][0] <= k){ cout << n*(n-1)/2; return 0; } for(int i = 1; i <= n; i++) rem.push_back(d[i][1]); sort(rem.begin(),rem.end()); int ans = 0; for(int i = 1; i <= n; i++){ int x = upper_bound(rem.begin(),rem.end(),k-l-d[i][0])-rem.begin()-1; ans += (x+1); } 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...