import

Time limit: 0.05s Memory limit: 20MB Input: import.in Output: import.out

Ca orice ţară civilizată, România importă diferite produse din alte ţări. În acest scop se efectuează MM transporturi, fiecare transport plecând dintr-un oraş din afara ţării şi având ca destinaţie finală un oraş din România. Orice transport este efectuat de un camion ce aparţine fie firmei Alfatrans, fie firmei Betatrans.

Putem presupune că oraşele sunt numerotate de la 11 la NN, oraşele 1..K1..K fiind din Romania, iar oraşele K+1..NK+1..N din alte ţări. Între aceste oraşe există N1N-1 şosele bidirecţionale astfel încât între oricare 22 oraşe există exact un drum (format din una sau mai multe şosele) şi orice drum de la un anumit oraş din România către un oraş din altă ţară trece prin oraşul 11, în acest oraş aflându-se vama.

Pe parcursul drumului oricărui transport, la trecerea printr-un oraş şoferul camionului trebuie să plătească anumite taxe şi trebuie să comercializeze o parte din produsul transportat, astfel încât să obţină un profit fixat de primăria oraşului respectiv.

Guvernul României a stabilit pentru fiecare transport profitul total minim ce trebuie obţinut. Profitul total se obţine însumând profiturile obţinute în fiecare oraş prin care trece camionul pe drumul de la oraşul de plecare la oraşul destinaţie (inclusiv oraşul de plecare şi oraşul destinaţie).

Patronul Alfatrans are numeroase relaţii internaţionale şi poate manipula primăria fiecărui oraş. Astfel, el poate să stabilească pentru fiecare oraş ii profitul PiP_i care trebuie să fie obţinut la trecerea unui camion prin oraşul respectiv.

Pentru a discredita firma Betatrans, patronul firmei Alfatrans doreşte să stabilească PiP_i pentru fiecare oraş ii astfel încât orice transport executat de camioane Alfatrans să aducă un profit mai mare sau egal cu profitul minim stabilit pentru acel transport şi orice transport executat de camioane Betatrans să aducă un profit strict mai mic decât profitul stabilit.

Cerinţă

Pentru un număr considerabil de acţiuni la Alfatrans şi pentru a obţine 100100 de puncte, trebuie să-l ajutaţi pe patronul firmei Alfatrans să stabilească pentru fiecare oraş profitul impus de primărie astfel încât firma Betatrans să fie discreditată.

Date de intrare

Pe prima linie a fişierului de intrare import.in sunt scrise numerele naturale N M KN \ M \ K separate prin câte un spaţiu, având semnificaţia din enunţ. Următoarele N1N-1 linii conţin câte două numere naturale a,ba, b separate printr-un spaţiu, cu semnificaţia că există o şosea bidirecţională de la oraşul aa la orasul bb. Următoarele MM linii descriu transporturile după cum urmează. Fiecare linie conţine 44 numere a b c da \ b \ c \ dseparate prin câte un spaţiu cu semnificaţia "se face transport de la oraşul aa la oraşul bb executat de firma xx, iar profitul minim ce trebuie asigurat pentru acest transport este cc". Firma xx este Alfatrans dacă d=0d=0 şi respectiv Betatrans dacă d=1d=1. Se garantează că pentru orice transport aa este un oraş din afara ţării, iar bb este un oraş din România.

Date de ieşire

Fişierul import.out va conţine o singură linie pe care se vor scrie nn numere separate prin exact câte un spaţiu. Cel de al ii-lea număr de pe linie reprezintă PiP_i, profitul stabilit de patronul Alfatrans pentru oraşul ii. Dacă aceste valori vor face ca firma Betatrans să nu respecte cerinţele guvernului, iar firma Alfatrans să respecte în totalitate aceste cerinţe veţi obţine punctajul maxim pe test.

Restricții și precizări

  • 2<N<2222 < N < 222
  • 1<K<N1 < K < N
  • 0<M<K×(NK)0 < M < K \times (N-K)
  • Profitul minim ce trebuie asigurat pentru fiecare transport este un număr întreg cuprins între 109-10^{9} şi 10910^{9}
  • Profiturile PiP_i trebuie să fie numere întregi cuprinse între 100 000-100 \ 000 şi 100 000100 \ 000.
  • Se garantează existenţa unei soluţii.

Exemplu

import.in

7 4 4
1 3
3 2
3 4
1 5
1 6
6 7
6 2 10 0
6 3 5 1
7 4 7 0
5 4 -2 1

import.out

0 6 -6 3 0 10 0

Explicație

Primul transport trece prin oraşele 6 1 36 \ 1 \ 3 şi 22 obţinând un profit de 10+06+6=1010+0-6+6=10 deci respectă condiţiile din enunţ.
Al doilea trece prin 6 1 36 \ 1 \ 3 obţine un profit de 10+06=4<510+0-6=4<5 şi de asemenea respectă condiţiile din enunţ
Al treilea drum trece prin oraşele 7 6 1 3 47 \ 6 \ 1 \ 3 \ 4, obţine un profit de 0+10+06+3=70+10+0-6+3=7, iar ultimul drum trece prin 5 1 3 45 \ 1 \ 3 \ 4 cu un profit de 0+06+3=3<20+0-6+3= -3 < -2

Log in or sign up to be able to send submissions!