Problema 1  Brutus, Frutus si partitiile

    "6+3+1!", striga Brutus ca un nebun. "6+2+2!", il contrazicea Frutus. "Esti tu un  6+2+2", 
raspundea Brutus. "Cap patrat!", a mai zis Frutus. Apoi prietenii au iesit din han si Brutus i-a rupt 
lui Frutus un dinte.
    Despre ce discutau Brutus si Frutus? Motivul disputei lor era care este cea de-a zecea partitie a 
numarului 10 in Ordine Frumoasa. O partitie este orice descompunere a numarului in intregi strict 
pozitivi care adunati dau numarul initial si care sunt ordonati in ordine necrescatoare. (ex. 
10=6+3+1). Numim Ordine Frumoasa, ordinea in care o partitie a_1+a_2+...+a_k este inaintea 
partitiei b_1+b_2+...+b_l daca si numai daca, pentru un anume u, avem: a_1=b_1, a_2=b_2, ..., 
a_u=b_u, a_u+1>b_u+1. De exemplu, partitiile numarului 6 in Ordine Frumoasa sunt: 
6, 5+1, 4+2, 4+1+1, 3+3, 3+2+1, 3+1+1+1, 2+2+2, 2+2+1+1, 2+1+1+1+1, 
1+1+1+1+1+1.
    Scrieti un program care, pentru doua numere n si k date, determina a k-a partitie a numarului n 
in Ordine Frumoasa.

Intrare
    Pe prima linie a fisierului PART.IN sunt scrise numerele n si k, separate printr-un spatiu 
(1<n<100, k este mai mic decat numarul total al partitiilor lui n).

Iesire
    Partitia ceruta se va scrie pe prima linie a fisierului PART.OUT.

Exemplu
PART.IN                 PART.OUT
10 10                   6+2+2

Observatie: Frutus avea dreptate!!!

Timp maxim de executie/test: 1 secunda

Problema 2  Casti albastre in Dinburu

    Deoarece dreptul de succesiune la tron al regelui Ubugulundibumbuluku era pus la indoiala, 
cetatenii orasului Burabujum si-au ales un presedinte si au inceput sa mareasca teritoriul noii 
Republici Dinburu. Teritoriul are forma unui poligon, nu neaparat convex.
    ONU a decis sa trimita in Dinburu Casti Albastre, soldatii fortei de pace internationale urmand 
sa fie parasutati din noile avioane invizibile F117 care au fost testate cu succes si in Iugoslavia. 
Cand un parasutist atinge solul el trebuie sa-si dea seama daca se afla pe teritoriul republicii Dinburu.
    Scrieti un program care citeste coordonatele varfurilor poligonului care inglobeaza teritoriul 
republicii. (varfurile sunt date in ordine trigonometrica) si apoi coordonatele punctelor in care au 
cazut parasutistii. Pentru fiecare parasutist determinati daca parasutistul se afla pe teritoriul 
republicii, in afara teritoriului sau pe frontiera.

Intrare
    Fisierul ONU.IN are urmatoarea structura:
    - pe prima linie avem numarul n (1<n<1000), reprezentand numarul varfurilor poligonului
    - pe fiecare din urmatoarele n linii avem coordonatele unui varf
    - pe linia n+2 este scris numarul p, reprezentand numarul parasutistilor
    - pe urmatoarele p linii avem coordonatele unui parasutist

Iesire
    Fisierul ONU.OUT va avea p linii, fiecare continand unul dintre cuvintele: 
FRONTIERA, INTERIOR sau EXTERIOR.
Exemplu
ONU.IN                  ONU.OUT
4                   EXTERIOR
0 0                 FRONTIERA
1 0                 FRONTIERA
1 1                 INTERIOR
0 1
4
2 2
0 0
0.5 0
0.5 0.5

Timp maxim de executie/test: 1 secunda

Problema 3  Dansul fluturilor

    Directorul circului Hilbert s-a hotarat sa adauge un nou act la spectacol si a ales dansul fluturilor. 
Dansul fluturilor este dansat, simultan, de n fluturi numerotati de la 1 la n. La inceput fluturii se 
afla in campuri numerotate de la 1 la n. Exista n sageti desenate dintr-un camp in altul astfel incat 
din fiecare camp porneste exact o sageata si in fiecare camp ajunge exact o sageata. 
    La inceput fiecare fluture se afla in campul cu numarul corespunzator (al k-lea fluture se afla in 
campul k). La fiecare secunda, fiecare fluture sare din campul in care se afla in campul indicat de 
sageata ce porneste din acel camp (toti fluturii sar deodata). Dansul fluturilor se termina cand toti 
fluturii se afla din nou in pozitiile din care au plecat. Directorul vrea ca spectacolul sa dureze cat 
mai mult posibil, deci trebuie sa realizeze o aranjare inteligenta a sagetilor. 
    Scrieti un program care citeste numarul n al fluturilor si determina o aranjare a sagetilor astfel 
incat spectacolul sa dureze cat mai mult timp posibil. Programul trebuie sa determine si timpul (T) 
cat va dura spectacolul. 

Intrare
    Din fisierul FLUTURI.IN se va citi numarul n al fluturilor (1<n<1000).

Iesire
    Rezultatele se scriu in fisierul FLUTURI.OUT.
     pe prima linie se va scrie timpul T (in secunde)
     pe urmatoarele n linii se va scrie cate un numar (pe linia i+1 va fi afisat numarul campului in 
care ajunge sageata care porneste din campul i).

Exemplu
FLUTURI.IN              FLUTURI.OUT
8                   15
                    2
                    3
                    1
                    5
                    6
                    7
                    8
                    4
Timp maxim de executie/test: 1 secunda

Problema 4  Ordonare

    In fisierul ORDO.IN se afla 1.000.000 de numere reale, cate unul pe o linie. Scrieti in fisierul 
ORDO.OUT numerele in ordine crescatoare.

Observatie:
    - cel mai rapid program va primi 100 de puncte, iar urmatorii vor primi punctaj in functie de 
timpul de executie.

Problema 5  Numere mari

    In fisierul MARI.IN se afla doua numere intregi a si b, cate unul pe linie. Primul numar are 
30000 de cifre, iar al doilea 10000. Scrieti in fisierul MARI.OUT numerele a*b, a/b (adica pe a 
div b) si a%b (adica pe a mod b).

Observatie:
    - cel mai rapid program va primi 100 de puncte, iar urmatorii vor primi punctaj in functie de 
timpul de executie.

Problema 6  Numere prime

    Scrieti in fisierul PRIME.TXT toate numerele prime mai mici decat 1.000.000.

Observatii:
    - cel mai rapid program va primi 100 de puncte, iar urmatorii vor primi punctaj in functie de 
timpul de executie;
    - este interzisa folosirea unor siruri constante.




