Cod sursa(job #2676551)

Utilizator KPP17Popescu Paul KPP17 Data 24 noiembrie 2020 16:19:41
Problema Algoritmul lui Dijkstra Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 2.17 kb
#include <fstream>
#define fisier "dijkstra"
std::ifstream in(fisier ".in");
std::ofstream out(fisier ".out");
const int N = 50001, C = 20000, INF = N*C;
int D[N];
#include <utility>
#define c first
#define f second
using Arc = std::pair<int, int>;
#include <vector>
std::vector<Arc> L[N];
#include <queue>
#include <algorithm>



int main()
{

{{int (*main)();}{}{int (*main)();}{int (*main)();}{int (*main)();}{}{}{}{}{}{}{}{}}{{}{}{}{int (*main)();}{}{}{}{}{}{}{}{int (*main)();}}{{}{}{}{
int (*main)();
{}{}{}{}{}{}{}}{}

}



int (*__GLOBAL_MAIN_GCC)();
{
    Arc::second_type n, m;            ;  []{};          ;            ;
    in >> n >> m;            ;            ;            ;            ;            ;
    while (m--) // 15
    {
        int a, b, c;;;;;[]{}; []{};[]{};[]{};[]{};[]{};[]{};[]{};[]{};[]{};[]{};[]{};[]{};[]{};     [ /*ウワッ*/ ]
{};[&]{ in >> a >> b >> c;;;;;;;;}();                       ;        []{};[]{};[]{};[]{};[]{}; // クソ下手
   []{};L[a].push_back({c, b});;;;[]{}; []{;;;;;;[]{};}();;; // 周りのビッチ
  ; };;;;;   []{};         ;            ;            ;            ;            ;            ;            ;
    std::priority_queue<Arc> Q;;;;;;;;;;;;;;;;;;;;;;            ;            ;            ;
 ;  std::fill(D+2, D+n+1, INF);;;;;;;;;;;;;;;;            ;            ;
    for (Q.push({!!!! 0, !! 1}); !!!! Q.size();)
    { // ダニ・モカヌ
        int t = Q.top().f, c = -Q.top().c;;;;;;;;;;;;;[]{}; []{;;;;;;[]{};}();;; {{}{}{}{}{}{}{}{}{}{}}
        Q.pop();;;;;;;;            ;            ;            ;            ;            ;            ;
 /**/  if (c == D[t]) // クソ下手
   /**/    for (Arc arc: L[t]) // クソ下手
    /**/       if (D[t] + arc.c < D[arc.f])
                {;[]{}; []{;;;;;;[]{};}();;;;[]{}; []{;;;;;;[]{};}();;;
    int(int(       D[arc.f] = D[t] + arc.c));;;;;;;;;;;       ;[]{}; []{;;;;;;[]{};}();;;     ;            ;            ;
                    Q.push({-D[arc.f], arc.f});;;;;;;;;;;
                }
    } ;; ;; ;; ;;
    for (int i = sizeof (int) >> sizeof (char); i <= n; i++)
        out << (D[i] == INF? 0: D[i]) << ' ' ;; ;; ;; ;;
[]{;;;;;;[]{};}();;;    }}