9609 | 2024. 02. 23 14:28:43 | Vkrisztian01 | Hálózati átvitel | cpp17 | Időlimit túllépés 22/50 | 646ms | 16016 KiB |
#include <iostream>
#include<vector>
#include<set>
#include<queue>
#include<algorithm>
using namespace std;
int n,m,k,h,a,b,c,tav,lepes,csucs,index;
vector<int>ki;
vector<vector<int> > dp;
vector<vector<pair<int,int> > > g;
set<pair<int,pair<int,int> > > seged;
int main()
{
cin>>n>>m>>k>>h;
ki.assign(n+1,-1);
dp.assign(n+1,vector<int>(h+1,0));
g.resize(n+1);
while(m--)
{
cin>>a>>b>>c;
g[a].push_back(make_pair(b,c));
g[b].push_back(make_pair(a,c));
}
//dp[k]=vector<int>(h+1,0);
seged.insert(make_pair(1e9,make_pair(0,k)));
while(!seged.empty())
{
tav=seged.begin()->first;
lepes=seged.begin()->second.first;
csucs=seged.begin()->second.second;
seged.erase(seged.begin());
if(dp[csucs][lepes]>=tav) continue;
index=lepes;
while(index<=h && dp[csucs][index]<tav)
{
dp[csucs][index]=tav;
++index;
}
if(ki[csucs]==-1) ki[csucs]=tav;
else ki[csucs]=max(ki[csucs],tav);
if(lepes==h) continue;
for(auto to:g[csucs])
{
if(dp[to.first][lepes+1]>=min(tav,to.second)) continue;
seged.insert(make_pair(min(tav,to.second),make_pair(lepes+1,to.first)));
}
}
ki[k]=0;
for(int i=1;i<=n;i++) cout<<ki[i]<<"\n";
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 22/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1944 KiB | |||
2 | Elfogadva | 0/0 | 4ms | 2112 KiB | |||
3 | Elfogadva | 1/1 | 3ms | 2324 KiB | |||
4 | Elfogadva | 1/1 | 3ms | 2664 KiB | |||
5 | Elfogadva | 2/2 | 4ms | 2812 KiB | |||
6 | Elfogadva | 2/2 | 13ms | 2860 KiB | |||
7 | Elfogadva | 2/2 | 20ms | 2952 KiB | |||
8 | Elfogadva | 2/2 | 19ms | 3180 KiB | |||
9 | Elfogadva | 1/1 | 6ms | 3520 KiB | |||
10 | Elfogadva | 1/1 | 65ms | 3712 KiB | |||
11 | Időlimit túllépés | 0/1 | 563ms | 2808 KiB | |||
12 | Időlimit túllépés | 0/1 | 586ms | 3236 KiB | |||
13 | Időlimit túllépés | 0/2 | 569ms | 3324 KiB | |||
14 | Időlimit túllépés | 0/2 | 558ms | 3480 KiB | |||
15 | Időlimit túllépés | 0/2 | 555ms | 4024 KiB | |||
16 | Időlimit túllépés | 0/2 | 646ms | 3696 KiB | |||
17 | Időlimit túllépés | 0/2 | 582ms | 3844 KiB | |||
18 | Időlimit túllépés | 0/2 | 558ms | 4244 KiB | |||
19 | Időlimit túllépés | 0/2 | 569ms | 4036 KiB | |||
20 | Időlimit túllépés | 0/2 | 554ms | 4296 KiB | |||
21 | Időlimit túllépés | 0/1 | 569ms | 7960 KiB | |||
22 | Időlimit túllépés | 0/1 | 559ms | 8016 KiB | |||
23 | Időlimit túllépés | 0/1 | 563ms | 8024 KiB | |||
24 | Időlimit túllépés | 0/1 | 554ms | 8292 KiB | |||
25 | Időlimit túllépés | 0/2 | 574ms | 9304 KiB | |||
26 | Időlimit túllépés | 0/2 | 574ms | 9176 KiB | |||
27 | Időlimit túllépés | 0/2 | 565ms | 9404 KiB | |||
28 | Elfogadva | 2/2 | 441ms | 14652 KiB | |||
29 | Elfogadva | 2/2 | 532ms | 15744 KiB | |||
30 | Elfogadva | 2/2 | 518ms | 16016 KiB | |||
31 | Elfogadva | 2/2 | 501ms | 15912 KiB | |||
32 | Elfogadva | 2/2 | 549ms | 16008 KiB |