21-22.12.2012. Информатикадан аудандық олимпиада есептері шығаруларымен. 10-11сынып. І-ІІ тур.
І-тур 10-11. A есебі Жұптар
N саннан тұратын тізбек беріледі. Осы сандардың ішінен тақ сандардың қосындысын шығарыңыз
Мәліметтерді енгізу форматы
Енгізу файлдың бірінші жолында бүтін сан N (1 <= N <= 1000) беріледі. Келесі жолда әрқайсысы 1000-нан кіші немесе тең, оң бүтін N сандар беріледі.
Мәліметтерді шығару форматы
program esepA;
var i,n,s:integer;
a:array[1..1000] of integer;
f1,f2:text;
begin
assign(f1,’a.in’);
reset(f1);
assign(f2,’a.out’);
rewrite(f2);
readln(f1,n);
for i:=1 to n do read(f1,a[i]);
s:=0;
for i:=1 to n do
if a[i] mod 2 =1 then s:=s+a[i];
writeln(f2,s);
close(f1);
close(f2);
end.
Немесе:
Есептің жауабы осында.
І-тур 10-11. B есебі Көңілді цифрлер
S жолы беріледі. Осы жолда кездесетін барлық цифрларды және олардың санын шығарңыз.
Мәліметтерді енгізу форматы
Енгізу файлдың бірінші жолында тек цифрлардан тұратын S жолы беріледі (1 <= |S| <= 1000).
Мәліметтерді шығару форматы
Жолда кезедесетін әр цифр үшін оны және ол қанша рет кездесетінін бір бос орынмен бөліп өсу ретімен бір бөлек жолда шығарыңыз.
Мысал / Пример
B.in | B.out | Комментарий |
90109914 | 0 2 1 2 4 1 9 3 |
Задача В Веселые цифры
Дается строка S. Нужно вывести все цифры, которые встречаются в ней и их количество.
Формат входных данных
Первая строка входного файла содержит состоящую только из цифр строку S, (1 <= |S| <= 1000).
Формат выходных данных
Для каждой цифры, которая встречается в строке, выведите в отдельной строке ее и сколько раз она встречается, разделяя ровно одним пробелом, в возрастающем порядке.
program esepB;
var i,s:integer;
c:char;
a:string[26];
f1,f2:text;
begin
assign(f1,’b.in’);
reset(f1);
assign(f2,’b.out’);
rewrite(f2);
a:=’abcdefghijklmnopqrstuvwxyz’;
for i:=1 to 26 do begin
s:=0;
while not eof(f1) do
begin
read(f1,c);
if a[i]=c then s:=s+1;
end;
if s<>0 then writeln(f2,a[i],’ ‘,s);
reset(f1);
end;
close(f1);
close(f2);
end.
С Жай сандар
Бүтін N саны беріледі. N-ге дейінгі барлық жай сандардың қосындысын табыңыз. Жай сан 1-ге және өзіне ғана бөлінетін сан.
Мәліметтерді енгізу форматы
Енгізу файлдың бірінші жолында бір бүтін сан N (1 <= N <= 1000000) беріледі.
Мәліметтерді шығару форматы
Есептің жауабын шығарыңыз.
Мысал / Пример
C.in | C.out | Комментарий |
5 | 10 | 2+3+5=10 |
Задача C Простые числа
Задано целое число N. Найдите сумму простых чисел до N. Простое число это число, которое делится только на 1 и на самого себя.
Формат входных данных
Первая строка входного файла содержит одно целое число N (1 <= N <= 1000000).
Формат выходных данных
Выведите сумму простых чисел от 1 до N.
program esepC;
var n,s:longint;
i,j,k:integer;
f1,f2:text;
begin
assign(f1,’c.in’);
reset(f1);
assign(f2,’c.out’);
rewrite(f2);
readln(f1,n);
s:=0;
for i:=1 to n do begin
k:=1;
for j:=2 to i do
if i mod j=0 then k:=k+1;
if k=2 then s:=s+i;
end;
writeln(f2,s);
close(f1); close(f2);
end.
II-тур 10-11. D есебі Орындықтар
Қатарда N орындықтар тұр. Анда-санда адам келіп, бос орындықтарының біріне отырады. Адам отырғанда оның барлық көршілес орындықтарда отырған адамдар тұрып кетеді. Ең көп дегенде қанша орындық бос емес болуы мүмкін?
Мәліметтерді енгізу форматы
Енгізу файлдың бірінші жолында бүтін сан N (1 <= N <= 1000) беріледі
Мәліметтерді шығару форматы
Есептің жауабын шығарыңыз.
Мысал / Пример
D.in | D.out | Комментарий |
3 | 2 | 101, осында 1 бос емес орындық, 0 бос. 101, где 1 это занятый стул, 0 незанятый. |
Задача D Стулья
В ряд стоят N стульев. Время от времени подходит человек и садится на один из свободных стульев. При этом все соседи (если такие есть) встают и уходят. Какое наибольшее число стульев может оказаться занятым, если сначала все они свободны?
Формат входных данных
Первая строка входного файла содержит целое число N (1 <= N <= 1000).
Формат выходных данных
Выведите ответ к задаче.
var
n,s: integer;
begin
Assign(input, ‘D.in’);
Reset(input);
assign(output,’D.out’);
rewrite(output);
readln(n);
s := 0;
if n mod 2 = 0 then s:=n div 2 else
s:=(n div 2) + 1;
WriteLn(s);
end.
E есебі Көп сандар
N саннан тұратын тізбек беріледі. Осы сандарды екіден қос алып көбейткенде ең көп дегенде қанша шығатынын табыңыз.Мәліметтерді енгізу форматы
Енгізу файлдың бірінші жолында бүтін сан N (1 <= N <= 1000000) беріледі. Келесі жолда әрқайсысы модулі бойынша 1000000-нан кіші немесе тең, бүтін N сандар беріледі.
Мәліметтерді шығару форматы
Есептің жауабын шығарыңыз.
Мысал / Пример
E.in | E.out | Комментарий |
3 1 2 3 |
6 | 2 * 3=6 |
4 -10 -5 2 3 |
50 | -10 * -5 = 50 |
Задача E Много чисел
Дается последовательность из N чисел. Найдите максимальное произведение среди всех пар этих чисел.
Формат входных данных
Первая строка входного файла содержит целое число N (1 <= N <= 1000000). В следующей строке задаются N целых чисел, каждое из которых по модулю меньше или равно 1000000.
Формат выходных данных
Выведите ответ к задаче.
var
i,N,my,j,max: integer;
a: array[1..100] of integer;
begin
Assign(input, ‘E.in’);
Reset(input);
assign(output,’E.out’);
rewrite(output);
Readln(N);
for i:=1 to N do
read(a[i]);
max:=0;
For i:=1 to n do
for j:=i+1 to n do
begin
my:=a[i]*a[j];
if my>max then
max:=my;
end;
write (max);
end.
F есебі Сөздік
Жомартта N сөздер бар.Осыған қосы ода S жолы бар. Ол бұл жолдың кез-келген әріптерің орнын ауыстыра алады. Бұл жолды ауыстырып ол сөздіктен қанша сөзді келтіре немесе ала алады?
Мәліметтерді енгізу форматы
Енгізу файлдың бірінші жолында бір бүтін сан N (1 <= N <= 10) беріледі. Келесі N жолдарда ағылшын әліпбиінің кіші әріптерінен тұратын сөздіктің әр сөзі бөлек жолда беріледі (1 <= сөздіктегі сөздің ұзындығы <= 100).
Мәліметтерді шығару форматы
Есептің жауабын шығарыңыз.
Мысал / Пример
F.in | F.out | Комментарий |
3 aba baa aab aba |
3 | |
3 food game pie eagm |
1 |
Задача F Словарь
В словаре Жомарта N слов. У него также есть строка S. Он может переставлять любые буквы в этом слове. Сколько слов из словаря он может получить перестановкой букв своей строки S?
Формат входных данных
Первая строка входного файла содержит одно целое число N (1 <= N <= 10). В следующих N строках задается каждое слово словаря, состоящее из строчных букв английского алфавита (1 <= длина слово из словаря <= 100). В последней строке задается строка S (1 <= S <= 100).
Формат выходных данных
Выведите ответ к задаче.
const b=['a'..'z'];
var c:char;
s,s1,s2,s3:string;
n,n1,n2,i,j,k,h:byte;
ss: array[1..100] of string;
f:boolean;
begin
Assign(input, ‘F.in’);
Reset(input);
assign(output,’F.out’);
rewrite(output);
readln(n);
for i:=1 to n do readln(ss[i]);
readln(s3);
n1:=length(s3); h:=0;
for k:=1 to n do
begin
s2:=ss[k];
n2:=length(s2); s1:=s3;
if n1=n2 then
begin
s:=”;
i:=1;
while i begin
j:=1;
f:=false;
while(j if s2[j]=s1[i] then f:=true
else j:=j+1;
if f then
begin
s:=s1[i]+s;
delete(s1, i ,1); delete(s2, j ,1);
end
else i:=i+1;
end;
if s1=” then begin h:=h+1; end
end
end;
if h=0 then writeln (‘No’) else
writeln(h);
end.
Менің вариантым:
program sozder_sany;
var i,j,k,k1,n,y:integer;
s:string; sl:array[1..100] of string;
procedure slova(x:string);
begin
if length(s)<>length(x) then begin writeln(‘NO… ‘);exit; end;
k:=0;
for j:=1 to length(s) do
for y:=1 to length(x) do if s[j]=x[y] then k:=k+1;
if k>=length(s) then k1:=k1+1 else exit;
end;
begin
{write(‘engiziniz N = ‘);
read(n);
for i:=1 to n do read(sl[i]);}
sl[1]:=’food’; sl[2]:=’game’; sl[3]:=’pie’; sl[4]:=’eagm’;
k1:=0;n:=4; s:=sl[n];
for i:=1 to n-1 do
begin
slova(sl[i]);
end;
writeln(‘Sozder sany =…’,k1);
end.
Ұқсас тақырыптар:
- 21.12.2012. Информатика аудандық олимпиада. 8-9 сынып. І-тур.
- Информатика. Аудандық олимпиада есептерінің шығарылуы, II этап, 2008-2009
- 2012-2013 орта мектептерге келген олимпиада есептері, шешулерімен (Ақтөбе облысы бойынша).
- 2012-2013 аудандық олимпиада есептері ІІ тур (Ауданов Махсет, Маңғыстау облысы)
- Қалалық олимпиада тапсырмалары 2012.
- 22.12.2012. Информатикадан аудандық олимпиада есептері шығаруларымен. 8-9 сынып. ІІ-тур.
- Информатика бойынша олимпиада есептерінің шығарылуы, II этап, 2009-2010.
- 2008-2009 Олимпиада есептері шешулерімен.
- Pascal-да программалар: 2-лік->10 сан, 10-дық->2 сан, 4 амал, Қазақша жыл.
- Информатика 2010-2011. Олимпиада есептері шығарылуымен.
08.01.13 облыстыкта келген есетер: 1 тур: 1.Кассадагы кезек
2.Жолды бояу 3.Номера перестановка
Көп сандар (E есебі) есебінде сандарды қос-қостан алып, көбейтіп салыстырған тиімсіз. Себебі 1 <= N max then begin max:=a[i]; p:=i; end;
if a[i]max then max:=a[i];
a[1]:=a[p]; a[p]:=t1;
t1:=t1*max;
a[q]:=a[1]; a[1]:=min;
min:=a[2];
for i:=3 to n do
if a[i]t2 then write(t1) else write(t2);
close(input);
close(output);
end.
Төмендегідей кодпен үлкен көлемді тест жасап тексерілген:
var i:longint;
begin
randomize;
assign(output,’e.in’);rewrite(output);
writeln(1000000);
for i:=1 to 1000000 do write(round(2000000*random-1000000),’ ‘);
close(output);
end.