Olimpiada misollari
PASKAL UCHBURCHAGI
Kiruvchi fayl nomi: pascal. in
Chiquvchi fayl nomi: pascal. out
Vaqt bo’yicha cheklanishar: 2 sekund
Xotira bo’yicha cheklanishar: 64 megabayt
Paskal uchburchagi- bu quyidagi ko’rinishdagi sonlardan tashkil topgan cheksiz uchburchak:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Paskal uchburchagi qatorlari noldan, har bir qatordagi sonlar ham noldan boshlab nomerlanadi. Nolinchi qatorda faqatgina bitta son – bir, keyingi har bir qatorda esa oldingisidagidan bitta ko’p son bor. Har bir qatordagi nolinchi va oxirgi son birga, qolganlarning har biri esa oldingi qatordagi ularning tepasida turgan ikkita sonning yig’indisiga teng. Shunday qilib i-qatorda i+1 ta son bor. Agar i-qatorning j-elementini a a ij deb belgilasak, u holda tenglik bajariladi. Bu tenglik oldingi qatordagi yo’q elementlarni (1 va i nomerli elementlar) nolga tenglasak, chetki elementlar uchun ham bajariladi.
Murod Paskal uchburchagining n-qatorida nechta toq son borligini bilmoqchi. Murod uchburchak chiza boshladi, lekin u tez orada varoqqa sig’may qoldi. Shunda Murod bu jarayonni kompyuterda bajarishga ahd qildi. Unga yordam bering.
Kiruvchi fayl formati
Kiruvchi faylda n 0<=n<=2 000 000 000 soni saqlanadi.
Chiquvchi fayl formati
Chiquvchi faylda bitta son- Paskal uchburchagining n-qatoridagi toq sonlar miqdori bo’lishi kerak.
Program Paskal_uchburchagi;
Var i,j,n,k: integer; l: real; a: array[0..100, 0..100] of integer; f1, f2: file;
Begin assign (f1, ‘pascal.in’); reset (f1); read (f1,n); a[0,0]:=1; a[1,0]:=1; a[1,1]:=1;
if n>1 then Begin for i:=2 to n do Begin a[I,0]:=1; a[I,i]=1 End;
For i:=2 to n do For j:=1 to i-1 do A[I,j]:=a[i-1,j-1]+a[i-1,j]; End; K:=0;
For i:=0 to n do For j:=1 to I do If a[I,j] mod 2<>0 then K:=k+1; Assign (f2, ‘pascal.out’);
Rewrite (f2); Write (f2,k); Close (f1); Close (f2); Readln; End.
