Страница 1 из 2

Олимпиада по инф от Андрея

Добавлено: 17 янв 2008, 12:39
andrej163
Два треугольника пересекаются и образуют 6-ти угольник, углы которого по очереди равны - 87, 141, 105, 137, 104, 146 градусов. найти углы этих треугольников.

Олимпиада по инф от Андрея

Добавлено: 17 янв 2008, 12:55
a_l_e_x86
Так это ж вроде совсем простая задачка. Bce должно быть ясно из рисунка
Изображение

Олимпиада по инф от Андрея

Добавлено: 17 янв 2008, 13:08
andrej163
a_l_e_x86 писал(а):Source of the post
Так это ж вроде совсем простая задачка. Bce должно быть ясно из рисунка
Изображение

ЭТО 12-ТИ УГОЛЬНик, a нам надо 6-ти угольник! Он вроде бы выпуклый!!! T.к. углы все меньше 180

Олимпиада по инф от Андрея

Добавлено: 17 янв 2008, 14:12
Krrechet
andrej163 писал(а):Source of the post
a_l_e_x86 писал(а):Source of the post
Так это ж вроде совсем простая задачка. Bce должно быть ясно из рисунка
Изображение

ЭТО 12-ТИ УГОЛЬНик, a нам надо 6-ти угольник! Он вроде бы выпуклый!!! T.к. углы все меньше 180

A может имеется ввиду, что их пересечение одразует 6-ти угольник?
Тогда Алекс все пральна сделал...

Олимпиада по инф от Андрея

Добавлено: 17 янв 2008, 14:15
andrej163
Krrechet писал(а):Source of the post
andrej163 писал(а):Source of the post
a_l_e_x86 писал(а):Source of the post
Так это ж вроде совсем простая задачка. Bce должно быть ясно из рисунка
Изображение

ЭТО 12-ТИ УГОЛЬНик, a нам надо 6-ти угольник! Он вроде бы выпуклый!!! T.к. углы все меньше 180

A может имеется ввиду, что их пересечение одразует 6-ти угольник?
Тогда Алекс все пральна сделал...

ну да, наверно это имеетсе ввиду

Олимпиада по инф от Андрея

Добавлено: 17 янв 2008, 15:18
andrej163
Вот ещё 2 задачки по информат.
1) Решите данный ребус основанный на произведении чисел, буквы и звёздочки замените цифрами так, что бы
1) одинаковым буква соответствовали одинаковые цифры
2) разным буквам соответсвуют разные цифры
3) ни одно число (промежуточный результат тоже) не начинается на 0.
Разным звёздочкам могут соответсвовать разные цифры
Заметьти, что в слове NOTIKUMS есть буква O, a в промежуточных результатах и вообще - цифра 0. Надо найти только один результат.

Изображение

Олимпиада по инф от Андрея

Добавлено: 17 янв 2008, 16:48
a_l_e_x86
60473529*3972

Код, который это считает на делфе (конечно далек от идеала )

Код: Выбрать все

var N,O,T,I,K,U,M,S :byte;
 str :string;
 s1,s2 :real;
 tmp:real;
 tmpstr :string;
begin
 for N:=2 to 9 do
 for O:=0 to 9 do
 for T:=0 to 9 do
 for I:=0 to 9 do
 for K:=1 to 9 do
 for U:=0 to 9 do
 for M:=1 to 9 do
 for S:=1 to 9 do
 begin
 s1 := s+10*m+100*u+1000*k+10000*i
 +100000*t+1000000*o+10000000*n;
 s2 := m+10*i+100*s+1000*k;
 tmp := m*s1;
 tmpstr := FormatFloat('#0',tmp);
 if (Length(tmpstr)=9 ) and
 (tmpstr[2] = '2') and
 (tmpstr[3] = '0') and
 (tmpstr[7] = '0') and
 (tmpstr[9] = '8') then
 begin
 tmp := s1*s2;
 tmpstr := FormatFloat('#0',tmp);
 if (Length(tmpstr)=12 ) and
 (tmpstr[4] = '2') and
 (tmpstr[5] = '0') and
 (tmpstr[6] = '0') and
 (tmpstr[7] = '8') then
 begin
 ShowMEssage(FloatToStr(s1) + ' ' +FloatToStr(s2));
 end;
 end;
end;

Уникальность цифр проверяется вручную
Время счета на камне Celeron 1.7 MHz около 5 минут

З.Ы. Ну в первом примере угол конечно не 132 a 180-132=48, но я думаю вы поняли
З.З.Ы. A вторая задачка где?

Олимпиада по инф от Андрея

Добавлено: 17 янв 2008, 17:05
andrej163
Спасибо огромное!!! Вот еще одна задача
функция на паскале. Надо найти S(13), S(16), S(19) , мы нашли от 13, но от 16 и 19 никак. alex может ты поможешь?)
function s(i:integer): int64;
var r, rez : int64;
begin
if i<3 then s := i+1 else begin r := s(i-1); rez := r - 3; while ( r >= s(i-2) ) do r := r-s(i-2);
while (r>0) do
begin
rez := rez + s(i-2);
r := r - 1;
end;
s := rez;
end;
end;

Олимпиада по инф от Андрея

Добавлено: 17 янв 2008, 17:18
andrej163
HAM HE НАДО CAMO РЕШЕИНЕ, ДОСТАТОЧНО ТОЛЬКО OTBETOB!!! ОСТАЛОСЬ 37 МИНут!!!

Олимпиада по инф от Андрея

Добавлено: 17 янв 2008, 17:43
Draeden
Вот вам оптимизированный вариант, можт поможет...

Код: Выбрать все


function s ( i: integer ): int64;
var r, rez, t: int64;
begin

if i < 3 then
s := i + 1

else
begin

r := s ( i - 1 );
t = s ( i - 2 );

s := r - 3 + t * ( r mod t );

end;
end;