22.12.2012. Информатикадан аудандық олимпиада есептері шығаруларымен. 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.
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.
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.
Осы есептердің С++ -те жазылған программасы (Гүлжан Шажабаева, Алматы.)
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;
}
Ұқсас тақырыптар:
- 21.12.2012. Информатика аудандық олимпиада. 8-9 сынып. І-тур.
- Информатика. Аудандық олимпиада есептерінің шығарылуы, II этап, 2008-2009
- 2012-2013 орта мектептерге келген олимпиада есептері, шешулерімен (Ақтөбе облысы бойынша).
- Қалалық олимпиада тапсырмалары 2012.
- 2008-2009 Олимпиада есептері шешулерімен.
- I-тур. Информатикадан 2011-2012 жылғы аудандық олимпиадасы, 2-этап, 5 сағат (2012 облыстық І-тур)..
- ІІ-тур. Информатикадан 2011-2012 жылғы аудандық олимпиадасы, 2-этап.
- Информатика-9. Символдық мәліметтермен жұмыс тәсілдері (2 сағ).
- Паскаль. Кіріс, шығыс файлдары
- Информатика бойынша олимпиада есептерінің шығарылуы, II этап, 2009-2010.