lanterna

Time limit: 0.05s
Memory limit: 16MB
Input: lanterna.in
Output: lanterna.out

Un agent secret are o hartă pe care sunt marcate NN obiective militare. El se află, iniţial, lângă obiectivul numerotat cu 11 (baza militară proprie) şi trebuie să ajungă la obiectivul numerotat cu NN (baza militară inamică). În acest scop, el va folosi drumurile existente, fiecare drum legând 22 obiective distincte. Fiind o misiune secretă, deplasarea agentului va avea loc noaptea; de aceea, el are nevoie de o lanternă. Pentru aceasta, el are de ales intre KK tipuri de lanterne – o lanternă de tipul WW (1WK1 \leq W \leq K) are baterii care permit consumul a WW waţi, după consumul acestor waţi, lanterna nu mai luminează. Din fericire, unele dintre obiective sunt baze militare prietene, astfel că, o dată ajuns acolo, el îşi poate reîncărca bateriile complet. Agentul trebuie sa aibă grijă ca, înainte de a merge pe un drum între două obiective, cantitatea de waţi pe care o mai poate consuma să fie mai mare sau egală cu cantitatea de waţi pe care o va consuma pe drumul respectiv.

Cunoscând drumurile dintre obiective şi, pentru fiecare drum, durata necesară parcurgerii drumului şi numărul de waţi consumaţi de lanternă, determinaţi tipul de lanternă cu numărul cel mai mic, astfel încât durata deplasării sa fie minimă (dintre toate tipurile de lanternă cu care se poate ajunge în timp minim la destinaţie, interesează lanterna cu consumul cel mai mic).

Date de intrare

Pe prima linie a fişierului lanterna.in se află numerele întregi NN şi KK, separate printr-un spaţiu. Pe următoarea linie se află NN numere întregi din mulţimea 0,1{0,1}. Daca al ii-lea număr este 11, aceasta înseamnă că obiectivul cu numărul ii este o bază militară prietenă (adică agentul îşi poate reîncărca bateriile lanternei daca ajunge la acest obiectiv); dacă numărul este 00, agentul nu îşi va putea reîncărca bateriile. Primul număr din linie este 11, iar ultimul este 00. Pe cea de-a treia linie a fişierului se află numărul MM de drumuri dintre obiective. Fiecare din următoarele MM linii conţine câte 44 numere întregi separate prin spaţii: a b T Wa\ b\ T\ W , având semnificaţia că există un drum bidirecţional între obiectivele aa şi bb (aba≠b), care poate fi parcurs într-un timp TT şi cu un consum de WW waţi.

Date de ieşire

In fişierul lanterna.out se vor afişa două numere întregi, separate printr-un spaţiu : TminT_{min} şi WminW_{min}. TminT_{min} reprezentând durata minimă posibilă a deplasării de la obiectivul 11 la obiectivul NN, iar WminW_{min} reprezintă tipul de lanternă cu numărul cel mai mic pentru care se obţine acest timp.

Restricţii şi precizări

  • 2N502 ≤ N ≤ 50
  • 1K1 0001 ≤ K ≤ 1 \ 000
  • 1MN(N1)/21 ≤ M ≤ N(N-1)/2
  • Între două oraşe diferite poate exista maximum un drum direct.
  • Pentru fiecare drum, durata parcurgerii este un număr întreg intre 11 şi 100100, iar numărul de waţi consumaţi este un număr întreg între 00 şi 10001 000
  • Se garantează că există cel puţin un tip de lanternă pentru care deplasarea să fie posibilă.
  • Punctajul pentru un test se va acorda in felul următor:
  • 30% daca este determinat corect TminT_{min}
  • 100% daca sunt determinate corect atât TminT_{min}, cât şi WminW_{min}

Exemplu

lanterna.in

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

lanterna.out

27 6

Problem info

ID: 54

Editor: liviu

Author:

Source: OJI 2004 XI-XII: Problema 2

Tags:

OJI 2004 XI-XII

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