Cerință
Într-o zi frumoasă de vară, Vasile, elev de clasa a 12-a care urmează să dea bacul, se pregătea la informatică. El se află la bunicii săi unde nu are internet, și toată ziua a rezolvat exerciții cu matrici. A decis să ia o pauză, și-a luat foaia pe care era desenată o matrice de dimensiuni care conține valori întregi, și a plecat în curte să își găsească o activitate nouă.
Afară a găsit un mușuroi de furnici și a decis să facă un mic joculeț cu dintre ele. El va lua pe rând, câte o furnică, și o va plasa în colțul stânga jos al matricii, fie el considerat de coordonate . Acesta analizează traseul fiecărei furnici și notează unele puncte prin care trece aceasta. Dacă o furnică trece prin căsuța unui element din matrice, atunci valoarea din căsuța respectivă se va adăuga la scorul furnicii.
Furnicile găsite de Vasile sunt inteligente, prin urmare ele au următoarele proprietăți:
- Fiecare furnică se va îndrepta către punctul de coordonate ;
- Furnicile merg într-o linie dreaptă între două puncte consecutive observate de către Vasile;
- Coordonatele punctelor au valori reale cu exact două zecimale;
- Nu vor să piardă timp, așa că ele nu se vor îndepărta niciodată de ținta lor (sunt pe grind). Altfel spus, pentru două puncte consecutive și , și .
Atenție! Traseul furnicilor este descris în planul cartezian. Consultați desenul de la exemplu!
Vasile este intrigat de aceste comportamente și dorește să știe scorul pentru fiecare furnică.
Date de intrare
Pe prima linie se vor afla dimensiunile matricii, și . Pe următoarele linii se vor afla câte numere întregi , care reprezintă numerele care se află în matricea din joculețul lui Vasile. Pe următoarea linie se va afla , reprezentând numărul de furnici care participă în cursă. Următoarele linii vor conține perechi de coordonate , numere reale cu exact două zecimale, reprezentând punctele observate pentru furnica . Ultima coordonată pentru o furnică va fi .
Date de ieșire
Pe linia se va afișa scorul furnicii cu numărul .
Restricții și precizări
- ;
- ;
- ;
- ;
- ;
- Vom nota cu lungimea traseului furnicii
- pentru de la la
- Suma pentru de la la
- Pentru teste în valoare de puncte, pentru două puncte consecutive și , sau și toate punctele au coordonate întregi;
- Pentru teste in valoare de alte de puncte, , ;
- Pentru teste în valoare de alte de puncte, toate punctele au coordonate întregi;
- Pentru teste în valoare de alte de puncte, nu există restricții suplimentare;
- Dacă o furnică merge pe marginea unei căsuțe și nu intră în interiorul ei, atunci ea nu va primi scorul respectivei căsuțe.
- Atenție! Matricea valorilor specifice căsuțelor se citește în ordine de sus în jos ( descrescător), de la stânga la dreapta ( crescător). Punctele intermediare sunt date după coordonatele lor carteziene (, ).
Exemplul 1
stdin
5 5
2 8 4 8 -1
9 5 3 1 4
10 0 10 6 7
11 -1 7 10 9
5 0 20 -15 8
4
3.80 1.20 4.60 3.66 5.00 5.00
1.20 1.70 2.10 3.75 5.00 5.00
0.00 4.00 3.00 4.00 3.00 5.00 5.00 5.00
3.00 3.00 5.00 5.00
stdout
39
34
0
14
Explicație
Prima furnică va trece prin următoarele căsuțe:
A doua furnică va trece prin următoarele căsuțe:
A treia furnică nu intră în nici o căsuță, ci merge doar pe marginea lor. Deci, are scorul .
A patra furnică trece prin următoarele căsuțe:
Furnica cu scorul cel mai mare este prima, cu un scor în valoare de .
Exemplul 2
stdin
4 6
-7 -8 6 -3 1 10
10 -8 8 8 6 -1
-9 8 0 -10 0 -10
5 -9 -2 -7 -8 6
3
5.34 3.61 6.00 4.00
5.83 0.49 5.97 2.49 6.00 4.00
5.88 1.84 5.99 3.56 6.00 4.00
stdout
37
-16
-24