Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2020-03-15 20:58:03.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:vampir.in, vampir.outSursăFMI No Stress 9 Warmup
AutorIoan Alexandru Tifui, Stelian ChichirimAdăugată defminostress9FMI No Stress 9 fminostress9
Timp execuţie pe test0.1 secLimită de memorie16384 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Vampir

Daniel, aventuros din fire, a plecat intr-o excursie pe taramul vampirilor. Din nefericire, acesta a cazut prada unui vampir si acum se afla captiv in castelul acestuia. Harta taramului vampirilor poate fi reprezentata intr-un sistem de axe ortogonal, iar castelul in care se afla acum Daniel este plasat in origine. Se stie faptul ca pe taramul vampirilor exista o singura zona luminata de soare. Aceasta zona este reprezentata de conturul unui patrat de latura L a carui diagonale se afla pe axele de coordonate.

Dupa negocieri insistente, Daniel a reusit sa il convinga pe vampir sa il elibereze. Din nefericire, vampirul nostru este pasionat de matematica, in special de functia beta a lui Euler. Pentru doua numere naturle x si y, B(x, y) = \frac{(x - 1)! + (y - 1)!}{(x + y - 1)!}. Asadar, vampirul ii pune la dispozitie lui Daniel un dispozitiv de teleportare care, pentru un numar K fixat, va putea transporta utilizatorul dintr-un punct (x1, y1) in alt punct (x2, y2), cu conditia ca |x1 - x2| + |y1 - y2| = K, x1 \neq x2 si y1 \neq y2. Pentru fiecare teleportate, Daniel va trebui sa ii plateasca vampirului un anumit cost. Costul unei teleportari din (x1, y1) in (x2, y2) il reprezinta B(|x1 - y1|, |x2 - y2|). Deoarece Daniel uraste functia beta, acesta va alege la fiecare pas teleportarea cu costul cel mai mic. Daniel poate folosi mai multe teleportari pentru a ajunge in zona sigura, dar va folosi de fiecare data acelasi numar K. Inainte de plecare, Daniel se intreaba:

1) Care sunt valorile pare ale lui K pe care le poate alege pentru a ajunge in zona sigura folosind dispozitivul de teleportre
2) Care este costul minim pe care il va plati Daniel vampirului pentru a ajunge in zona sigura

Date de intrare

Fişierul de intrare vampir.in contine pe prima linie doua numere naturale C si L. C poate avea valoarea 1 sau 2, in functie de intrebarea la care trebuie sa raspundeti, iar L are semnificati de maai sus.

Date de ieşire

Daca nu exista nicio valoare para K pe care Daniel sa o poata alege pentru a ajunge in zona sigura folosind dispozitivul de teleportre, atunci fişierul de ieşire vampir.out va contine pe prima linie numarul -1, indiferent de valoarea lui C.

In caz contrar:

In cazul in care C este 1 fişierul de ieşire vampir.out va contine pe prima linie mai multe numere narutare, reprezentand valorile pare ale lui K pe care le poate alege pentru a ajunge in zona sigura folosind dispozitivul de teleportre.

In cazul in care C este 2 fişierul de ieşire vampir.out va contine pe prima linie un singur numar, reprezentand costul minim pe care il va plati Daniel vampirului pentru a ajunge in zona sigura, modulo 1000000007.

Restricţii

  • L este numar par
  • 2 ≤ L ≤ 10000000
  • Pentru teste in valoare de 50 de puncte C = 1
  • Pentru alte teste in valoare de 50 de puncte C = 2
  • Rezultatul la a doua cerinta trebuie afisat modulo 1000000007.

Exemplu

vampir.invampir.out
This is some
text written on
multiple lines.
This is another
text written on
multiple lines.

Explicaţie

...

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?