== include(page="template/taskheader" task_id="obj") ==
==Include(page="template/taskheader" task_id="obj")==
Poveste ...
Gigel si Ionel joaca un joc. Ei au o gramada ce contine $N$ obiecte si efectueaza mutari alternativ. Cel care se afla la mutare poate sa ia din gramada un numar de obiecte cuprins intre $1$ si minim{ $K$, numarul de obiecte ramase in gramada }. Numarul de obiecte luat la fiecare mutare se aduna la numarul total de obiecte luate pana atunci de jucatorul respectiv. Castigatorul jocului este cel care, in momentul in care gramada se goleste, detine un numar par de obiecte (pentru a exista un singur castigator, numarul initial de obiecte din gramada este impar). Gigel este cel care efectueaza prima mutare.
h2. Cerinta
Pentru valorile $N$ si $K$ date, determinati cine va castiga jocul, considerand ca atat Gigel, cat si Ionel, folosesc o strategie optima.
...
h2. Date de Intrare
h2. Restrictii
Prima linie a fisierului de intrare $obj.in$ contine numarul $J$ de jocuri ce vor fi descrise in continuare. Fiecare din urmatoarele $J$ linii contine cate doua numere intregi, separate printr-un spatiu: $N$ si $K$.
...
h2. Date de Iesire
h2. Date de intrare
In fisierul de iesire $obj.out$ veti afisa $J$ linii. Pentru fiecare joc descris in fisierul de intrare (in ordinea in care sunt date in fisier), veti afisa caracterul $`G'$, in caz ca Gigel va castiga jocul, respectiv caracterul $`I'$, in cazul in care castigatorul este Ionel.
...
h2. Restrictii si precizari
h2. Date de iesire
...
* $1 ≤ J ≤ 30$
* Pentru fiecare joc:
o $1 ≤ N ≤ 1.000.000.000, N impar$
o $1 ≤ K ≤ N$
* Pentru $50%$ din teste $N ≤ 20.000$ si $K ≤ 100$
* Pentru $90%$ din teste $N ≤ 1.000.000$
h2. Exemplu
| obj.in | obj.out |
| linia1
linia2
linia3
| linia1
linia2
|
table(example). |_. obj.in |_. obj.out |
| 5
21 8
23 8
9 3
11 3
999999 12345
| I
G
I
G
G |
== include(page="template/taskfooter" task_id="obj") ==
==Include(page="template/taskfooter" task_id="obj")==