0 дауыс
15.3k көрілді
Мен Сынып олимпиада дан өттім. Мектепшілік олимпиада сұрақтарын тауып бере аласызба ?Жауабы болса тіпті жақсы.

2 жауап

0 дауыс

Информатикадан аудандық олимпиада есептері шығаруларымен. 8-9 сынып. ІІ-тур.

D есебі Орындықтар
Қатарда N орындықтар тұр. Анда-санда адам келіп, бос орындықтарының біріне отырады. Адам отырғанда оның барлық көршілес орындықтарда отырған адамдар тұрып кетеді. Ең көп дегенде қанша орындық бос емес болуы мүмкін?
Мәліметтерді енгізу форматы
Енгізу файлдың бірінші жолында бүтін сан N (1 <= N <= 1000) беріледі
Мәліметтерді шығару форматы
Есептің жауабын шығарыңыз.
Мысал / Пример

D.in

D.out

Комментарий

3

2

101, осында 1 бос емес орындық, 0 бос.
101, где 1 это занятый стул, 0 незанятый.

Задача D Стулья
В ряд стоят N стульев. Время от времени подходит человек и садится на один из свободных стульев. При этом все соседи (если такие есть) встают и уходят. Какое наибольшее число стульев может оказаться занятым, если сначала все они свободны?
Формат входных данных
Первая строка входного файла содержит целое число N (1 <= N <= 1000).
Формат выходных данных
Выведите ответ к задаче.

Шешуі: Жеңіс Шоңбаев
program Stul;
var a,b:integer; D1,D2:text; c,i:integer;
begin
Assign (D1,’D.in’);
Assign (D2,’D.out’);
Reset(D1);
Rewrite(D2);
a:=0;
Readln(D1,b);
c:=2;
if (b mod 2) = 0 then a:= b /c; else a:= (b+1)/c
Writeln(D2,a);
Close (D1);
Close (D2);
end.

hello_html_m65a18e9a.gif

E есебі Көп сандар
N саннан тұратын тізбек беріледі. Осы сандарды екіден қос алып көбейткенде ең көп дегенде қанша шығатынын табыңыз.
Мәліметтерді енгізу форматы
Енгізу файлдың бірінші жолында бүтін сан N (1 <= N <= 1000) беріледі. Келесі жолда әрқайсысы модулі бойынша 1000-нан кіші немесе тең, бүтін 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 <= 1000). В следующей строке задаются N целых чисел, каждое из которых по модулю меньше или равно 1000.
Формат выходных данных
Выведите ответ к задаче.
Шешуі: Жеңіс Шоңбаев

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.

hello_html_m65a18e9a.gif

F есебі Сөздер
A және B екі жолдар берілген. Осы сөздердің бірінің әріптерін орын ауыстырып, екі сөзді теңестіруге бола ма?
Мәліметтерді енгізу форматы
Енгізу файлдың бірінші жолында ағылшын әліпбиінің кіші әріптерінен тұратын A жолы беріледі (1 <= |A| <= 1000). Екінші жолда дәл осы форматта B жолы беріледі (1 <= |B| <= 1000).
Мәліметтерді шығару форматы
Егер сөздердің бірінің әріптерін орын ауыстырып, екі сөзді теңестіруге болатын болса, “Yes” деген жолы шығарыңыз немесе “No” деп кері жағдайда.
Мысал / Пример

F.in

F.out

Комментарий

Bca
cba

Yes


Ada
dada

No


Задача F Слова
Заданы две строки A и B. Можно ли переставить буквы в одном из слов так, чтобы слова стали одинаковыми?
Формат входных данных
Первая строка входного файла содержит строку A, состоящую из строчных букв английского алфавита (1 <= |A| <= 1000). Вторая строка содержит строку B в таком же формате (1 <= |B| <= 1000).
Формат выходных данных
Выведите “Yes”, если можно переставить буквы в одном из слов, чтобы слова стали одинаковыми или “No”, иначе.

Шешуі: Жеңіс Шоңбаев

begin
j:=1;
f:=false;
while(j<=length(s2)) and not f do
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.

hello_html_m65a18e9a.gif

Осы есептердің С++ -те жазылған программасы (Гүлжан Шажабаева, Алматы.)
D esebi
#include
#include
#define fname “d”
using namespace std;
int main(){
freopen(fname”.in”,”r”,stdin);
freopen(fname”.out”,”w”,stdout);
int n;
cin >> n;
if (n % 2 == 1) n++;
cout << n/2 << endl;
return 0;
}

E esebi
#include
#include
#include
#include
#define fname “e”
using namespace std;
int a[1000];
int main(){
freopen(fname”.in”,”r”,stdin);
freopen(fname”.out”,”w”,stdout);
int n;
cin >> n;
for (int i = 0; i < n; i++) cin >> a[i];
sort(a,a+n);
cout << max(a[0]*a[1] , a[n-2]*a[n-1]);
return 0;
}

F esebi
#include
#include
#define fname “f”
using namespace std;
char s[1000];
char ss[1000];
int f[26] = {0};
int ff[26] = {0};
int main(){
freopen(fname”.in”,”r”,stdin);
freopen(fname”.out”,”w”,stdout);
cin >> s;
for (int i = 0; i < (int)strlen(s); i++) f[s[i]-‘a’]++; cin >> ss;
for (int i = 0; i < (int)strlen(ss); i++)
ff[ss[i]-‘a’]++;
for (int i = 0; i < 26; i++)
if (f[i] != ff[i]) {cout << “No”; return 0;}
cout << “Yes”;
return 0;
}


0 дауыс
Калалық есептер барма информатика...
...