NAUJA FUNKCIJA  (Latvija)

(Vykdymo laikas – 2 sek. Pentium 200 Mhz) 

Programuotojams dažnai tenka perrašyti senas programas taip, kad naujosios atliktų senųjų veiksmus ir dar kai ką daugiau. Puiku, jei programos buvo gerai dokumentuotos ir galima pasinaudoti jų pradiniais tekstais. Tačiau taip nevisuomet būna.
Jums reikia perdaryti anksčiau parašytą funkciją FUN, apie kurią žinoma: 
1) FUN argumentai yra 4 teigiami sveikieji skaičiai a1, a2, a3 ir a4,
2) FUN reikšmė lygi vienai iš jos argumentų reikšmių,
3) FUN atlieka vieną iš šios rūšies funkcijų (veiksmų):
IF ai op aj THEN FUN:=ak ELSE FUN:=am ;
čia galimos op reikšmės yra < ,  , > , , = ,  ir 1  i, j, k, m  4.
Jeigu i=1, j=2, k=4, m=1 ir op yra '', tuomet atliekama funkcija (veiksmas)
IF a1a2 THEN FUN:=a4 ELSE FUN:=a1;  			(¶)
ir gausime, pavyzdžiui, FUN(2,1,1,3) = 3, FUN(4,4,2,3) = 4.
Žinoma, kad dabar esanti funkcijos FUN versija yra per lėta ir tinkamai veikia tik tada, kai jos argumentų reikšmės neviršija 5. Jums reikia parašyti naują funkcijos versiją, kuri tinkamai veiktų esant visoms teigiamoms sveikųjų skaičių reikšmėms, neviršijančioms 32767. 
Senoji funkcija FUN parašyta taip, kad jos atliekama funkcija (veiksmas) priklauso nuo duomenų bylos FUN.DAT, esančios tame pačiame veikiamajame kataloge – taigi nepakaks, jeigu naują funkciją Jūs parašysite taip, jog ji atliks tą pačią funkciją (veiksmą) kaip ir senoji funkcija FUN vienai fiksuotai bylai FUN.DAT. Naujoji versija turi tinkamai veikti esant bet kuriems korektiškiems duomenims, esantiems byloje FUN.DAT.
Jūsų programa bus vykdoma toje pat aplinkoje kaip ir senoji FUN. Taigi savo programoje galite panaudoti kreipinius į senąją FUN (žinoma, turėdami omeny argumentų reikšmių ribojimus). Vykdant Jūsų programą veikiamajame kataloge visuomet bus duomenų byla FUN.DAT ir Jūsų naujoji programa niekuomet nebus vykdoma be jų. 
Parašykite programą, kuri 1) atlieka tą pačią funkciją (veiksmą)s kaip ir senoji funkcija FUN (esant bet kuriems duotiems bylos FUN.DAT duomenims) ir 2) pateiktoms pradinėje duomenų byloje argumentų reikšmėms apskaičiuoja funkcijos reikšmes, kurias įrašo į rezultatų bylą.
Kreipinio į senąją funkciją FUN laikas nepriklauso nei nuo argumentų reikšmių, nei nuo bylos FUN.DAT.
Pradiniai duomenys
Tekstinės bylos NEWFUN.IN pirmoje eilutėje įrašytas funkcijos FUN argumentų rinkinių skaičius N (1N1000). Kiekvienoje iš tolesnių N eilučių pateikiami patys argumentų rinkiniai (keturi teigiami sveikieji skaičiai, vienas nuo kito atskirti vienu tarpu). Visų argumentų reikšmės neviršija 32767. 
Rezultatai
Tekstinę bylą NEWFUN.OUT turi sudaryti lygiai N eilučių. Bylos i-ojoje eilutėje turi būti įrašytas vienas teigiamas sveikasis skaičius – naujosios funkcijos FUN reikšmė esant i-ajam argumentų rinkiniui (1  i  N).

Tecninė informacija programuojantiems Paskaliu
Jūsų diskelyje pakatalogyje /FUN.PAS duotos šios bylos: 
•	FUNIT.TPU – modulis, kuriame yra funkcija FUN (šį modulį galite įtraukti į savo programą);
•	MAIN.PAS – pavyzdys programos, kuri iškviečia funkciją FUN (naudojamas FUNIT.TPU);
•	FUN.DAT, kuris atitinka pavyzdyje (¶) duotą funkciją (veiksmą). 

Pavyzdys
Pradiniai duomenys (byla newFUN.in)	Rezultatai (byla newFUN.out)
5						3
2 1 1 3					4
4 4 2 3					32766
32767 1 1 32766			6
6 6 6 6					10
7 8 9 10

Pastaba: Pavyzdyje pateiktų paskutinių trijų rinkinių senoji funkcija FUN tinkamai neapdoroja.