Информатика п?нінен олимпиада есептері, шы?ару жолымен
Информатикадан аудандыK олимпиада есептері шыCаруларымен. 8-9 сынып. ІІ-тур.
D есебі ОрындыKтарJатарда N орындыKтар тaр. Анда-санда адам келіп, бос орындыKтарыныS біріне отырады. Адам отырCанда оныS барлыK к™ршілес орындыKтарда отырCан адамдар тaрып кетеді. ЕS к™п дегенде Kанша орындыK бос емес болуы м_мкін?М‰ліметтерді енгізу форматыЕнгізу файлдыS бірінші жолында б_тін сан N (1 <= N <= 1000) беріледі М‰ліметтерді шыCару форматыЕсептіS жауабын шыCарыSыз.Мысал / Пример
D.in
D.out
Комментарий
3
2
101, осында 1 бос емес орындыK, 0 бос.101, где 1 это занятый стул, 0 незанятый.
Задача D СтульяВ ряд стоят N стульев. Время от времени подходит человек и садится на один из свободных стульев. При этом все соседи (если такие есть) встают и уходят. Какое наибольшее число стульев может оказаться занятым, если сначала все они свободны?Формат входных данныхПервая строка входного файла содержит целое число N (1 <= N <= 1000).Формат выходных данныхВыведите ответ к задаче.
Шешуі: ЖеSіс ШоSбаевprogram Stul;var a,b:integer; D1,D2:text; c,i:integer;beginAssign (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)/cWriteln(D2,a);Close (D1);Close (D2);end.
E есебі К™п сандарN саннан тaратын тізбек беріледі. Осы сандарды екіден Kос алып к™бейткенде еS к™п дегенде Kанша шыCатынын табыSыз.М‰ліметтерді енгізу форматыЕнгізу файлдыS бірінші жолында б_тін сан N (1 <= N <= 1000) беріледі. Келесі жолда ‰рKайсысы модулі бойынша 1000-нан кіші немесе теS, б_тін N сандар беріледі.М‰ліметтерді шыCару форматыЕсептіS жауабын шыCарыSыз.Мысал / Пример
E.in
E.out
Комментарий
31 2 3
6
2 * 3=6
4-10 -5 2 3
50
-10 * -5 = 50
Задача >E Много чиселДается последовательность из N чисел. Найдите максимальное произведение среди всех пар этих чисел.Формат входных данныхПервая строка входного файла содержит целое число N (1 <= N <= 1000). В следующей строке задаются N целых чисел, каждое из которых по модулю меньше или равно 1000.Формат выходных данныхВыведите ответ к задаче.Шешуі: ЖеSіс ШоSбаев
vari,N,my,j,max: integer;a: array[1..100] of integer;beginAssign(input, E.in’);Reset(input);assign(output,’E.out’);rewrite(output);Readln(N);for i:=1 to N doread(a[i]);max:=0;For i:=1 to n dofor j:=i+1 to n dobeginmy:=a[i]*a[j];if my>max thenmax:=my;end;write (max);end.
F есебі С™здерA ж‰не B екі жолдар берілген. Осы с™здердіS бірініS ‰ріптерін орын ауыстырып, екі с™зді теSестіруге бола ма?М‰ліметтерді енгізу форматыЕнгізу файлдыS бірінші жолында аCылшын ‰ліпбиініS кіші ‰ріптерінен тaратын A жолы беріледі (1 <= |A| <= 1000). Екінші жолда д‰л осы форматта B жолы беріледі (1 <= |B| <= 1000).М‰ліметтерді шыCару форматыЕгер с™здердіS бірініS ‰ріптерін орын ауыстырып, екі с™зді теSестіруге болатын болса, “Yes” деген жолы шыCарыSыз немесе “No” деп кері жаCдайда.Мысал / Пример
F.in
F.out
Комментарий
Bcacba
Yes
Adadada
No
Задача F СловаЗаданы две строки A и B. Можно ли переставить буквы в одном из слов так, чтобы слова стали одинаковыми?Формат входных данныхПервая строка входного файла содержит строку A, состоящую из строчных букв английского алфавита (1 <= |A| <= 1000). Вторая строка содержит строку B в таком же формате (1 <= |B| <= 1000).Формат выходных данныхВыведите “Yes”, если можно переставить буквы в одном из слов, чтобы слова стали одинаковыми или “No”, иначе.
Шешуі: ЖеSіс ШоSбаев
beginj:=1;f:=false;while(j<=length(s2)) and not f doif s2[j]=s1[i] then f:=trueelse j:=j+1;if f thenbegins:=s1[i]+s;delete(s1, i ,1); delete(s2, j ,1);endelse i:=i+1;end;if s1=” then begin h:=h+1; endendend;if h=0 then writeln (No’) elsewriteln(h);end.
Осы есептердіS С++ -те жазылCан программасы (Г_лжан Шажабаева, Алматы.)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;}
Заголовок 115