Список форумов Шадринский форум -> Программирование -> Программирование для школьников и студентов. -> Олимпиада по информатике для школьников
Начать новую тему   Ответить на тему   вывод темы на печать

Олимпиада по информатике для школьников

Автор
Сообщение
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2004.12.11 11:58.07
Ответить с цитатой
Прямо сейчас (11.12.2004) идет олимпиада по информатике для школьников 11 классов в 9 школе.

Задачи, прямо скажем, послабее, чем в прошлом году. Всего четыре. Первая - совсем для ламеров, вторая и четвертая - более интересные, третья - для математиков, программирование к ней близко не валялось.

Условия и решения выложу здесь после праздников - 14-15 числа.
Посмотреть профиль Отправить личное сообщение
Includer
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 120


Статус: Offline
СообщениеДобавлено: 2004.12.11 14:24.56
Ответить с цитатой
<offtopic>
а вас как зовут можно поинтересоваться?
<offtopic/>
Ржу
Посмотреть профиль Отправить личное сообщение
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2004.12.11 20:41.08
Ответить с цитатой
задачи в студию! Wink
Посмотреть профиль Отправить личное сообщение
Blast
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 6289
Откуда: Тюмень

Статус: Offline
СообщениеДобавлено: 2004.12.12 18:43.58
Ответить с цитатой
Хе... а я был в 9 школе перед олимпиадой по информатике.... тока я приходил на химию...Podmigivanie
_________________
ТюмГНГУ
======
admin of media-scan.ru & dialog-urfo.ru
---
Надо просто сделать так, чтобы твои линий были лучше (с) -Sayat-
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора ICQ Number
Pavel
Писатель


Пол: Пол:Муж.
Зарегистрирован: 29.11.2004
Сообщения: 312


Статус: Offline
СообщениеДобавлено: 2004.12.13 01:09.12
Ответить с цитатой
xdsl:Задачи, прямо скажем, послабее, чем в прошлом году. Всего четыре.

Вроде задачи сложнее. И в том году было четыре! Very Happy
Посмотреть профиль Отправить личное сообщение
Dein
Писатель


Пол: Пол:Муж.
Зарегистрирован: 26.11.2004
Сообщения: 391
Откуда: пустота

Статус: Offline
СообщениеДобавлено: 2004.12.13 10:04.54
Ответить с цитатой
Чем они сложнее-то?
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2004.12.14 16:09.07
Ответить с цитатой
Вот и задачи.
Тех-условия - на входе файл input.txt, на выходе - output.txt. Вывод на экран не оценивается.

1 (30баллов)
Дан текст, состоящий из слов, знаков препинаний и других символов. Словом считается последовательность символов из прописных и строчных букв латинского алфавита. Требуется перевернуть (записать в обратном порядке) все слова текста, оставив все остальное без изменений. В строке до 255 символов, в файле до 1000 строк.

Например: input.txt
This is an example.
Prim333primяяrt


Тогда output.txt:
sihT si na elpmaxe.
mirP333mirpяяtr


Решение:


 var s:string;
     c:char;
begin
 assign(input,'input.txt');
 reset(input);
 assign(output,'output.txt');
 rewrite(output);
 s:='';
 while not eof(input) do begin
  read(c);
  if c in ['A'..'Z','a'..'z'] then s:=c+s
  else begin
   write(s);
   s:='';
   write(c);
  end;
 end;
 write(s);
 close(input);
 close(output);
end.


Последний раз редактировалось: xdsl (2004.12.15 22:21.17), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2004.12.14 19:16.40
Ответить с цитатой
<?php  
$input = file_get_contents('input.txt');
$search = "/([a-zA-Z]*)([^a-zA-Z]*)/";
preg_match_all($search, $input, $s);
array_walk($s[1], create_function('&$v', '$v = strrev($v);'));
$s = array_map(create_function('$x,$y', 'return $x.$y;'), $s[1], $s[2]);
$output = implode('',$s);
file_put_contents('output.txt', $output);
?>

_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2004.12.14 22:05.40
Ответить с цитатой
еще хочу задачек Wink
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2004.12.14 23:44.13
Ответить с цитатой
Будет задачек. Кстати, это из какой версии: file_put_contents?

2 (40баллов)
План прямоугольного сада размером m*n состоит из квадратных зон. В каждой зоне растет по дереву. С каждого дерева упало несколько яблок. В левом верхнем квадрате находится ежик, который должен дойти до правого нижнего квадрата, двигаясь из текущего квадрата только вправо либо вниз.
Создать программу, которая вычисляет максимальное кол-во яблок, которое может собрать ежик.

Тех-условия: в input.txt в первой строке через пробел размеры сада. В каждой следующей строке через пробел кол-во яблок для каждой зоны. В output.txt - единственное число-результат

Пример input.txt
3 3
1 2 3
1 2 3
10 2 3

output.txt
17

Решение:

var rows,cols:integer;
      a:array[1..10,1..10] of integer;

function calc(row,col:integer):longint;
  var down,right,max:longint;
 begin
  calc:=0;
  if (row>rows) or (col>cols) then exit;
  down:=calc(row+1,col);
  right:=calc(row,col+1);
  if down>right then max:=down
  else max:=right;
  calc:=a[row,col]+max;
 end;

 var i,k:integer;
begin
 assign(input,'input.txt'); reset(input);
 assign(output,'output.txt'); rewrite(output);
 readln(rows,cols);
 for i:=1 to rows do begin for k:=1 to cols do read(a[i,k]); readln; end;
 writeln(calc(1,1));
 close(input); close(output);
end.




Последний раз редактировалось: xdsl (2004.12.15 22:21.50), всего редактировалось 1 раз
Посмотреть профиль Отправить личное сообщение
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2004.12.15 00:42.58
Ответить с цитатой
рекурсия = зло, и для ленивых Гейтцев Wink
Посмотреть профиль Отправить личное сообщение
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2004.12.15 00:55.12
Ответить с цитатой
хех, эт задачка решается в 1 проход при чтении исходных данных, и достаточно массива на [1..2,1..cols] Wink
догадаетесь сами как?
Посмотреть профиль Отправить личное сообщение
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2004.12.15 00:57.22
Ответить с цитатой
char писал(а):
рекурсия = зло, и для ленивых Гейтцев Wink

Во как! Категорично, однако. А обосновать?
Посмотреть профиль Отправить личное сообщение
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2004.12.15 01:08.59
Ответить с цитатой
char писал(а):
хех, эт задачка решается в 1 проход при чтении исходных данных, и достаточно массива на [1..2,1..cols]
догадаетесь сами как?

Это пусть гадалка гадает, а мы тут задачки школьной олимпиады решаем.
Код в студию! И как можно больше!
Как же это в одном лозунге звучало ... "Стране нужны файлы, много файлов, и мы будем их производить!"
Посмотреть профиль Отправить личное сообщение
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2004.12.15 01:17.48
Ответить с цитатой
обусновывать лениво Smile мнение просто такое, - ибо рекурсия довольно неявная для большинства штука и жрет ресурсы памяцкие Smile
код писать тож лениво Wink
...суммой все решаецца... - для каждой ячейки массива считаем и храним максимально возможное число подобранных по пути до нее тыблок Smile

...и здесь - необходимо и достаточно - лишь "предыдущей" и "текущей" строк массива.
Посмотреть профиль Отправить личное сообщение
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2004.12.15 01:44.06
Ответить с цитатой
Нету кода, нету обсуждения. Я вот знаю, как операционку за день написать ... но лениво ... даже знаю как за час написать ... но еще ленивее ...

По поводу рекурсии: самая что ни на есть явная, краткая и красивая вещь в программинге. Реализация рекурсивных алгоритмов нерекурсивными методами - самая запутанная вещь в программинге. А какая разница, как алгоритм память жрет - стеком или динамическим выделением? И в том и в другом случае следить надо за памятью.
Посмотреть профиль Отправить личное сообщение
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2004.12.15 01:51.26
Ответить с цитатой
от этой "самой что ни на есть явной" студенты плачут горючими слезами и теряют весь интерес к предмету. как же, как же, видел - видел Wink
Посмотреть профиль Отправить личное сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2004.12.15 08:28.18
Ответить с цитатой
рекурсия - вещь красивая простая. char, собери дерево без рекурсии? в вебе часто встречается, а там условие быстродействия
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2004.12.15 08:29.34
Ответить с цитатой
xdsl писал(а):
Кстати, это из какой версии: file_put_contents?
PHP 5, Identical to calling fopen(), fwrite(), and fclose() successively. The function returns the amount of bytes that were written to the file.
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2004.12.15 22:19.56
Ответить с цитатой
Продолжаю

3(40 баллов)
Три непраллельные прямые заданы коэффициентами a, b, и c, где a и b не могут одновременно быть равны 0. Определить площадь треугольника, образованными этими прямыми с точностью до 3 знаков.

Тех-условия: в input.txt по 3 числа в каждой строке через пробел - коэффициенты для каждой прямой. В output.txt - единственное число-площадь.

Пример:
Пример input.txt
0 1 1
1 0 1
4 3 19

output.txt
6.000

Комментарий: ГДЕ здесь программирование, хотел-бы я знать! Это олимпиада по информатике или математике? Ну ладно, Кнут им судья.

var a1,a2,a3,b1,b2,b3,c1,c2,c3:double;
    x1,x2,x3,y1,y2,y3:double;
    vx1,vy1,vx2,vy2,delta:double;
begin
 assign(input,'input.txt');
 reset(input);
 assign(output,'output.txt');
 rewrite(output);
 read(a1,b1,c1,a2,b2,c2,a3,b3,c3);
 close(input);
  delta:=a1*b2-a2*b1;
  x1:=(c1*b2-c2*b1)/delta;
  y1:=(a1*c2-a2*c1)/delta;

  delta:=a2*b3-a3*b2;
  x2:=(c2*b3-c3*b2)/delta;
  y2:=(a2*c3-a3*c2)/delta;

  delta:=a1*b3-a3*b1;
  x3:=(c1*b3-c3*b1)/delta;
  y3:=(a1*c3-a3*c1)/delta;

  vx1:=x2-x1;
  vy1:=y2-y1;
  vx2:=x3-x1;
  vy2:=y3-y1;
  
  writeln(abs((vx2*vy1-vx1*vy2)/2):0:3);

 close(output);
end.



Комментарий2: Ни метод Крамера, применяемый в этом решении, ни векторное произведение в школе не изучается (кроме классов углубленного изучения математики). Однако, задача решается и без этого - решением трех систем уравнений для нахождения точек пересечения, нахождением длин сторон и дальше - площадь по формуле Герона.
Посмотреть профиль Отправить личное сообщение
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2004.12.15 22:29.36
Ответить с цитатой
Ну и последняя задача
4(50баллов) Шахматный номер
Телефонный номер называется шахматным, если его цифры набираются на номеронабирателе ходом шахматного коня. Подсчитать, сколько можно набрать различных семизначных шахматных номеров, начинающихся с заданной цифры.

Вид номеронаберателя
1 2 3
4 5 6
7 8 9
_ 0 _

Тех-условия: в input.txt по число от 0 до 9. В output.txt - единственное число-результат.

Пример input.txt
1

output.txt
136

Решение:

const mas:array[0..9,1..3] of integer=(
(4,6,-1),(6,8,-1),(7,9,-1),
(4,8,-1),(3,9,0),(-1,-1,-1),
(1,7,0),(2,6,-1),(1,3,-1),(2,4,-1));

var N,tel:integer;

procedure find(digit,count:integer);
  var i:integer;
 begin
  if digit=-1 then exit;
  if count=7 then begin inc(tel); exit end;
  for i:=1 to 3 do find(mas[digit,i],count+1);
 end;

begin
 assign(input,'input.txt'); reset(input);
 assign(output,'output.txt'); rewrite(output);
 readln(N);
 find(n,1);
 writeln(tel);
 close(input); close(output);
end.
Посмотреть профиль Отправить личное сообщение
xdsl
просто хороший человек


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1252
Откуда: shadrinsk

Статус: Offline
СообщениеДобавлено: 2005.01.30 00:20.39
Ответить с цитатой
Искренне поздравляю Льва Шохирева с победой на областной олимпиаде по информатике после первого места на нашей олимпиаде!
Посмотреть профиль Отправить личное сообщение
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2005.01.30 00:28.24
Ответить с цитатой
интересно, почему меня не поздравляли... видимо не было тогда сети Wink
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2005.01.30 00:35.37
Ответить с цитатой
о, опять наши усех пабедили Smile
Посмотреть профиль Отправить личное сообщение
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2005.01.30 00:40.40
Ответить с цитатой
А ты сумневался? Правда я побеждал лет так 12-14 назад...
_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2005.01.30 00:54.48
Ответить с цитатой
не растраивайся, и лет 7-9 назад наши тоже пабеждали редисов заморских ("заобластных" то бишь) Smile
Посмотреть профиль Отправить личное сообщение
Майк Тайсон
Запомнил кнопки...


Пол: Пол:Муж.
Зарегистрирован: 17.04.2005
Сообщения: 117


Статус: Offline
СообщениеДобавлено: 2005.06.02 02:34.30
Ответить с цитатой
xdsl ты учитель информатики в 9-ой школе?
Посмотреть профиль Отправить личное сообщение
Leon
Бот-тролль 85 лв


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 61661


Статус: Offline
СообщениеДобавлено: 2005.06.02 13:42.59
Ответить с цитатой
Майк Тайсон писал(а):
xdsl ты учитель информатики в 9-ой школе?



_________________
Скажи мне чей Крым, и я скажу кто ты.
Посмотреть профиль Отправить личное сообщение
Dio
Шаман-заводчанин


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 29757


Статус: Offline
СообщениеДобавлено: 2005.06.02 13:50.17
Ответить с цитатой
Майк Тайсон писал(а):
xdsl ты учитель информатики в 9-ой школе?

Нет. Он учителей учит.
_________________
Йа - водоросль.
Посмотреть профиль Отправить личное сообщение
Nerfius
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 917
Откуда: почти Шадринск почти город

Статус: Offline
СообщениеДобавлено: 2005.06.02 19:17.22
Ответить с цитатой
прикладников учит а учителей так..
Посмотреть профиль Отправить личное сообщение
Страница 1 из 2
Начать новую тему   Ответить на тему   вывод темы на печать
На страницу 1, 2  След.
Показать сообщения:   
Список форумов Шадринский форум -> Программирование -> Программирование для школьников и студентов. -> Олимпиада по информатике для школьников

 
Перейти: 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы