Fişierul intrare/ieşire:parc.in, parc.outSursăOJI 2012 - clasele 11-12
AutorZoltan SzaboAdăugată deSpiderManSimoiu Robert SpiderMan
Timp execuţie pe test0.1 secLimită de memorie36864 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Parc

Un parc de formă dreptunghiulară este format din zone pietonale şi piste de biciclete. Reprezentând harta parcului într-un sistem cartezian, cu coordonata colţului stânga-jos (0, 0), pistele de biciclete sunt reprezentate prin dungi orizontale sau verticale colorate cu gri, iar zonele pietonale au culoarea albă, ca în figura din dreapta.
Vizitatorii parcului se pot plimba liber pe zonele pietonale în orice direcţie, însă pistele de biciclete se vor traversa, în linie dreaptă, paralel cu axele. În figura alăturată avem un parc de dimensiuni 10 × 8, cu piste de biciclete verticale între 2 şi 4 respectiv 5 şi 8, şi orizontale între 0 şi 1 respectiv între 2 şi 4. Gigel se află în punctul A(1, 1) şi poate sa ajungă pe drumul cel mai scurt la prietenul lui, în punctul B(8, 7) deplasându-se astfel: porneşte din punctul (1, 1) şi parcurge un traseu format din segmente cu extremităţile în punctele de coordonate (1.5, 2) (1.5, 4) (2, 5) (4, 5) (5, 7) şi în final ajunge în punctul de coordonate (8, 7). Lungimea totală a drumului va fi aproximativ 11.4721359.

Cerinţă

Cunoscând dimensiunile parcului, coordonatele lui Gigel, coordonatele prietenului lui şi poziţiile pistelor de biciclete, să se calculeze lungimea drumului minim şi numărul drumurilor distincte de lungime minimă.

Date de intrare

Fişierul parc.in conţine pe prima linie două numere naturale Xparc şi Yparc separate prin spaţiu, reprezentând dimensiunile parcului în direcţiile Ox respectiv Oy. Linia a doua va conţine patru numere separate prin spaţiu xG, yG, xpr şi ypr ce reprezintă coordonatele lui Gigel şi coordonatele prietenului lui. Linia a treia va conţine un număr natural m, reprezentând numărul pistelor verticale. Următoarele m linii vor conţine perechi de valori de pe axa Ox ce delimitează câte o pistă de biciclete verticală. Următoarea linie va conţine un număr natural n, reprezentând numărul pistelor orizontale. Următoarele n linii vor conţine perechi de valori de pe axa Oy ce delimitează câte o pistă de biciclete orizontală.

Date de ieşire

Fişierul parc.out va conţine pe prima linie un număr real reprezentând lungimea minimă a drumului cerut de problemă. Linia a doua va conţine un număr natural reprezentând numărul drumurilor minime distincte.

Restricţii

  • 0 ≤ xG, xpr ≤ Xparc ≤ 30 000;
  • 0 ≤ yG, ypr ≤ Yparc ≤ 30 000;
  • 0 < m, n < 2000
  • perechile de numere naturale ce definesc o pistă nu sunt ordonate;
  • pistele orizontale, şi cele verticale nu sunt ordonate în fişierul de intrare;
  • două piste de aceeaşi direcţie nu se suprapun;
  • Gigel şi prietenului lui sunt pe zone pietonale (incluzând şi marginile acestora);
  • două drumuri sunt distincte dacă diferă prin cel puţin un punct;
  • numărul de drumuri distincte nu va depăşi 1 000 000 000;
  • lungimea drumului din fişierul de ieşire este un număr real ce se va accepta cu eroare maxima de 0.01;
  • nu se admite formatul ştiinţific pentru afişarea numerelor reale;
  • prima cerinţă valorează 40% din punctaj, iar a doua valorează 60% din punctaj.

Exemplu

parc.inparc.outExplicaţie
10 8
1 1 8 7
2
5 8
2 4
2
4 2
0 1
11.472136
1
- lungimea drumului minim a fost calculată în exemplul de mai sus, rezultatul se poate tipări cu oricâte zecimale, diferenţa
absolută faţă de rezultatul oficial să nu difere cu mai mult de 0.01
- există un singur drum de lungime minimă
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?