.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » atac2

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
atac2


Timp maxim de execuţie / test:
0.7s
Memorie totala disponibilă / stivă:
16MB / 1MB

Costel, mare pasionat de jocuri de strategie, a descoperit de curând un joc nou. Acesta se joacă pe o hartă compusă din n oraşe, numerotate de la 1 la n, unele dintre acestea fiind conectate prin drumuri directe. Este posibilă deplasarea între oricare două oraşe utilizând drumurile existente. Costel a ajuns înaintea bătăliei finale, când adversarul său mai stăpâneşte un singur oraş. Notăm acest oraş cu x. Costel dispune de u unităţi de armată, fiecare fiind cantonată într-un oraş oarecare, diferit de oraşul x. Pentru a câştiga, Costel trebuie să deplaseze câte o unitate de armată în fiecare dintre oraşele învecinate cu oraşul x. Victoria nu este deloc sigură în situaţia în care timpul total necesar transportului unităţilor nu este minim. Datorită tehnologiei avansate, drumul direct dintre oricare două oraşe poate fi parcurs în timp constant egal cu o unitate de timp.

Cerinţă

Scrieţi un program care să determine timpul total minim de deplasare a tuturor unităţilor necesare în oraşele învecinate cu oraşul x.

Date de intrare

Fişierul de intrare atac2.in conţine:
- pe prima linie, 4 numere naturale n, m, u, x, separate prin câte un spaţiu, n reprezentând numărul oraşelor, m reprezentând numărul drumurilor directe existente între oraşe, u reprezentând numărul unităţilor de armată de care dispune Costel, x reprezentând oraşul în care se află armata adversarului.
- pe a doua linie, u numere naturale, separate prin câte un spaţiu, reprezentând oraşele în care se află cantonate cele u unităţi de armată.
- fiecare dintre următoarele m linii conţine câte două numere naturale a şi b, separate printr-un spaţiu, cu semnificaţia că oraşele a şi b sunt legate printr-un drum direct.

Date de ieşire

Fişierul de ieşire atac2.out conţine un singur număr natural reprezentând timpul total minim cerut.

Restricţii

1 < n ≤ 10000
1 < m ≤ 100000
0 < u ≤ 70
• Numărul oraşelor învecinate cu oraşul x este cel mult egal cu numărul unităţilor de armată
• Pentru 60% din teste u ≤ 8

Exemple

atac2.inatac2.outExplicaţii
7 11 3 7 6 1 3 1 4 2 5 3 1 3 5 4 5 5 1 6 2 6 3 6 4 7 4 7 5 2 Oraşul 7 se învecinează cu oraşele 4 şi 5, deci va fi nevoie să deplasăm doar 2 unităţi dintre cele 3 disponibile.
Timpul minim necesar este 2. Există mai multe variante pentru mutarea unităţilor, de exemplu:
- mutăm unitatea din oraşul 6 în oraşul 4 (1 unitate de timp) şi cea din oraşul 3 în oraşul 5 (1 unitate de timp)
- mutăm unitatea din oraşul 1 în oraşul 4 (1 unitate de timp) şi cea din oraşul 3 în oraşul 5 (1 unitate de timp)

autor: Prof. Alin Burţa
propunător: Prof. Emanuela Cerchez
Liceul de Informatică ″Grigore Moisil″
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la ONI 2008: ab2, iepuras, palind, auto, div, teatru, pm, submat, reteta2, rezervatie, creioane, melci, mere2, felinare, joc3, 2numere, fi, tablou, borcane, mexc, tcast, dep, dist1, stiva, banda, pavare, poarta, aranjare, bile4, subgeom, albinuta1, curent, pviz, virus
De acelaşi autor: picnic, expresie, origami, magic3, suma, race, balls, pcod, cat, cai1, cub1, cifru, cuburi2, cub2, adun, dir, comp, mxl, joc19, cifru5, gradina1, joc21
Despre graf: gropi, tgv, matrice2, miniasm, picnic, mere, circuit, soldati, arce, conflicte, desen, robot, furtuna, net, cuvinte, excursie, cadere, pioni, reinvent, kreg, flood, croco, johnie, matrice, arthur, kimberley, ro, sol, caravane, bete, honest, police, pcod, zmeu, auto2, grazing, datorii, trafic, sponsori, monede1, apm, bile1, caini, masina1, bomboane, turn1, shgraf, paintball, program1, tgraf, kgb, algola, felinar, joc6, tric, homeless, promo, turism, casute, joc10, prieteni1, traseu, zapezi, litoral, lover, trip, garaj, ziduri, tv, pact, echipe1, vitale, spion, trasee, bcolor, scara2, lant, ab3, soc, team, gard, rsp, graf, mexc, dep, albinuta1, cabane, drumuri, tj, grade, jungla, lanterna, magic5, coment, urgenta, fazan, lanturi, cfr, site, traseu1, trmv, graphgame, minuni, telefon, ubergraf, carray, pestera, chei, arbgraf, war, fluviu, drumuri1, entries, ubuntzei, pack, fotbal1, pamant, dag, razboi, benzina2, wg, neconex, asfalt1, kubus2, module, progresii, dfs, prieteni3, megascoala, grafxy, dineu, vot1, biperm, drumuri2, nrgraf, cristal, cartite, copaci3, dragoni, nuclee
Despre cuplaj: cuvinte, joc4, algebra, felinar, site, graphgame, pack, terenuri3d
surse trimise | ajutor