3289 | 2023. 02. 24 08:55:47 | renn | Turista (40) | cpp17 | Hibás válasz 6/40 | 3ms | 3788 KiB |
#include <bits/stdc++.h>
using namespace std;
int n, m, k, a, b, c, o = 0;
queue<int> path;
void dfs1(vector<vector<pair<int, int>>> &graf, vector<int> &arak, int j)
{
for(auto &x : graf[j])
{
if(arak[j]+x.second < arak[x.first])
{
arak[x.first] = arak[j]+x.second;
dfs1(graf, arak, x.first);
}
}
}
void dfs2(vector<vector<pair<int, int>>> &graf, vector<int> &arak, int j)
{
for(auto &x : graf[j])
{
if(arak[j]+x.second == arak[x.first])
{
path.push(x.first);
o += x.second*2;
dfs2(graf, arak, x.first);
}
}
}
int main()
{
cin.tie(0);
ios::sync_with_stdio(0);
cin >> n >> m >> k;
vector<vector<pair<int, int>>> graf(n+1);
vector<int> arak(n+1, 1000000);
arak[k] = 0;
while(m--)
{
cin >> a >> b >> c;
graf[a].push_back({b, c});
graf[b].push_back({a, c});
}
dfs1(graf, arak, k);
dfs2(graf, arak, k);
cout << o << "\n";
while(!path.empty())
{
cout << path.front() << " ";
path.pop();
}
cout << "\n";
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 6/40 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1828 KiB | |||
2 | Hibás válasz | 0/0 | 3ms | 2060 KiB | |||
3 | Elfogadva | 2/2 | 3ms | 2244 KiB | |||
4 | Elfogadva | 2/2 | 3ms | 2452 KiB | |||
5 | Elfogadva | 2/2 | 3ms | 2544 KiB | |||
6 | Hibás válasz | 0/2 | 3ms | 2664 KiB | |||
7 | Hibás válasz | 0/2 | 3ms | 2868 KiB | |||
8 | Hibás válasz | 0/2 | 2ms | 2948 KiB | |||
9 | Hibás válasz | 0/2 | 3ms | 3076 KiB | |||
10 | Hibás válasz | 0/2 | 3ms | 3308 KiB | |||
11 | Hibás válasz | 0/2 | 3ms | 3528 KiB | |||
12 | Hibás válasz | 0/2 | 3ms | 3596 KiB | |||
13 | Hibás válasz | 0/2 | 3ms | 3484 KiB | |||
14 | Hibás válasz | 0/2 | 3ms | 3488 KiB | |||
15 | Hibás válasz | 0/2 | 3ms | 3616 KiB | |||
16 | Hibás válasz | 0/2 | 3ms | 3712 KiB | |||
17 | Hibás válasz | 0/3 | 3ms | 3692 KiB | |||
18 | Hibás válasz | 0/3 | 3ms | 3788 KiB | |||
19 | Hibás válasz | 0/3 | 3ms | 3692 KiB | |||
20 | Hibás válasz | 0/3 | 3ms | 3700 KiB |