<?xml version="1.0" encoding="utf-8"?>
<!-- If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/ -->
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:lj="http://www.livejournal.com">
  <id>urn:lj:livejournal.com:atom1:olexander</id>
  <title>Іноді схожий на людину...</title>
  <subtitle>Ненависть очищує і позбавляє сенсу...</subtitle>
  <author>
    <name>olexander</name>
  </author>
  <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/"/>
  <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom"/>
  <updated>2008-07-26T01:40:42Z</updated>
  <lj:journal username="olexander" type="personal"/>
  <link rel="service.feed" type="application/x.atom+xml" href="http://olexander.livejournal.com/data/atom" title="Іноді схожий на людину..."/>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:236672</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/236672.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=236672"/>
    <title>Пікнік на фермі</title>
    <published>2008-07-26T01:40:42Z</published>
    <updated>2008-07-26T01:40:42Z</updated>
    <category term="США"/>
    <category term="розваги"/>
    <content type="html">Доки я збирався написати пост про те як ми побували на корпоративному пікніку Олнеа це вже зробила: &lt;a href="http://oeaooaa.livejournal.com/26458.html"&gt;http://oeaooaa.livejournal.com/26458.html&lt;/a&gt;. (: Але все одно повторюся - це було дуже кльово.&lt;br /&gt;&lt;br /&gt;Ні, це не було нудне корпоративне дійство у костюмах "в шумнам залє рєстаран" з обов'язковим питтям горілки до стану коли костюм перестає заважати. Все було дуже просто, але дуже продумано. Прості атракціони, але цікаві, різні, і їх багато. Проста їжа, але на різні смаки і в більш ніж достатній кількосі (і готували її тут же, тому до кінця дня все було свіже). Достатньо місця щоб посидіти вдвох, на відстані від всіх, але і достатньо столиків під навісами щоб посидіти великою компанією. Ну і так далі.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:236454</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/236454.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=236454"/>
    <title>Задача: Аліса, Боб, Єва та ліки</title>
    <published>2008-07-25T19:03:54Z</published>
    <updated>2008-07-25T19:03:54Z</updated>
    <category term="задачки"/>
    <content type="html">Знову задача. Вже не пам'ятаю де я її бачив, але щось нормальної відповіді так іне знайшов. Умова - Аліса та Боб живуть на відокремлених островах. Аліса хвора, а у Боба є ліки. Між островами плаває Єва, але вона візьметься перевозити речі лише у скринці. У Аліси та боба є по замку з ключем (у кожного свій). Якщо відправити щось у незамкненій скринці то Єва просто те щось вкраде. (: Як можна передати ліки з острова на острів? Людей перевозити Єва не візьмкться, і в скриньку людина не влізе, хіба лише частково (:&lt;br /&gt;&lt;br /&gt;Є ідеї?&lt;br /&gt;&lt;br /&gt;PS. Панове, прошу вас дуже, не треба мені писати що я вдаю з себе розумного і таке інше. Може воно так і є, але я волів би думати що я просто спілкуюся (: Ок?</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:235785</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/235785.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=235785"/>
    <title>Дикий берег. Ким Робинсон</title>
    <published>2008-07-25T00:04:51Z</published>
    <updated>2008-07-25T00:04:51Z</updated>
    <category term="книги"/>
    <content type="html">&lt;img src="http://www.fictionbook.ru/pages/show_cover/?file=120141&amp;amp;type=jpg&amp;amp;size=185" alt="" style="float: right;" /&gt;Що можна сказати про книгу? По перше треба сказати про автора. А почав він з того що написав дисертацію з приводу мови творів Філіпа Діка. Знаючи це неможливо починати читати з певним острахом - невже це новий Ф. Дік? Але ні. Написано дуже гарно, все дуже цікаво. Вибраний безпрограшний стиль ведення розповіді від лиця неосвіченого, але розумного від природи сільського хлопчака у постапокаліптичноих США. До речі весь інший світ живе нормально, лише Америку бомбами закидали і патрулюють береги.&lt;br /&gt;&lt;br /&gt;І вдало що переклад (який традиційно є ФІГОВИМ для фантастики) тут не такий поганий як міг би бути. Принаймні за речення не перечипаєшся.&lt;br /&gt;&lt;br /&gt;Книга є першій у трилогії. Всі три книги описують три різні, ніяк не пов'язані між собою світи (альтернативні всесвіти), але дії усіх трьох книг відбуваються у одних і тих самих географічних координатах.&lt;br /&gt;&lt;br /&gt;Що можу сказати це те що книга викликала бажання прочитати наступну частину трилогії (:</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:235720</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/235720.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=235720"/>
    <title>Alchemist - Tripsis (2007)</title>
    <published>2008-07-24T23:56:49Z</published>
    <updated>2008-07-24T23:56:49Z</updated>
    <category term="progressive death"/>
    <category term="avant-garde metal"/>
    <category term="avant-garde death"/>
    <category term="death thrash"/>
    <category term="музика"/>
    <content type="html">&lt;img src="http://ecx.images-amazon.com/images/I/515SIX8ehfL._SL500_AA240_.jpg" alt="" style="float: right;" /&gt;Люди пишуть що це Avant-Garde / Progressive Metal. Ну не знаю. Як для авангарда занадто стандатно, як для прогресів метала занадто важко (але якщо говорити про progressive death то навпаки, трошки залегко). Я би взявся обізвати стиль як progressive death thrash (: Але не дивлячись на плутанину з назвами стилів в моїй голові музика таки мені сподобалася. І навіть дуже. Хоча і не супер важко, проте агресивно.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;До речі команда австралійська.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:235483</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/235483.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=235483"/>
    <title>The Royal Tenenbaums (2001)</title>
    <published>2008-07-24T23:51:39Z</published>
    <updated>2008-07-24T23:51:39Z</updated>
    <category term="кіно"/>
    <content type="html">&lt;img src="http://images.rottentomatoes.com/images/movie/coverv/44/192544.jpg" alt="" style="float: right;" /&gt;Я вважаю що це один з найкращих американських фільмів (я б сказав що в першій десятці) за всю історію кінематографа. Отак от!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:235172</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/235172.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=235172"/>
    <title>C.S.S.O. - Are You Excrements (2001)</title>
    <published>2008-07-23T23:40:01Z</published>
    <updated>2008-07-23T23:40:01Z</updated>
    <category term="avant-garde"/>
    <category term="avant-garde metal"/>
    <category term="grindcore"/>
    <category term="free jazz"/>
    <category term="jazz rock"/>
    <category term="музика"/>
    <content type="html">&lt;img src="http://img.mp3fiesta.com/covers/20/20218/alb_81450_big.jpg" alt="" style="float: right;" /&gt;Японський Jazz-Rock/Gore/Grindcore, що в свою чергу може означати лише одне, а саме - "100% божевілля". Ну, по перше, це японці, по друге вони таки місцями провалюються в грайнкор, але пісні у них іноді по 10-12 хвилин. Чи є тут джаз? Так, безперечно. І ще можна знайти щось типу строго арт-року, ну і купу всього іншого.&lt;br /&gt;&lt;br /&gt;Якщо вам себе не шкода - слухайте на здоров'я (: Я ось слухаю.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:234780</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/234780.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=234780"/>
    <title>Нашествие квантовых котов. Фредерик Пол</title>
    <published>2008-07-23T23:33:58Z</published>
    <updated>2008-07-23T23:33:58Z</updated>
    <category term="книги"/>
    <content type="html">&lt;img src="http://www.fictionbook.ru/pages/show_cover/?file=101868&amp;amp;type=jpg&amp;amp;size=185" alt="" style="float: right;" /&gt;Осучаснена версія саймаковського "Кільця навколо Сонця". Зовсім непогано. Хоча фантастики там майже немає (маю на увазі наукової), і явно не шедевр світової літератури. Але все ж таки дочиталася до кінця без нудьги.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:234710</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/234710.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=234710"/>
    <title>Hellboy (2004)</title>
    <published>2008-07-23T23:30:54Z</published>
    <updated>2008-07-23T23:30:54Z</updated>
    <category term="кіно"/>
    <content type="html">&lt;img src="http://images.rottentomatoes.com/images/movie/coverv/71/227671.jpg" alt="" style="float: right;" /&gt;Не дивлячись на те що це фільм по комп'ютерній грі (що само по собі вже тупо), вийшло все ж таки щось не зовсім гидотне. Ні, дивитись там нічого. Але мені оті ктулхо-собаки, наприклад, сподобалися.&lt;br /&gt;&lt;br /&gt;А Олена так взагалі у захваті була (: Навіть продовження замовила. Доведеться і його дивитися.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:234491</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/234491.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=234491"/>
    <title>Деньнародженьське</title>
    <published>2008-07-23T02:11:10Z</published>
    <updated>2008-07-23T02:11:10Z</updated>
    <category term="політнекоректне"/>
    <category term="ні про що"/>
    <content type="html">Ви знаєте, хоча я майже байдужий до привітань з днем народження, сьогодні було реально приємно почитати і послухати усі привітання. На диво їх було багато. (: Навіть у якийсь моментпочинаєш вірити що ти є важливою частиною життя інших людей (: Жартую, жартую. Ще раз усім дякую. А також дякую тим хто мене не вітав. Я знаю - ви хотіли, і лише важа вроджена сором'язливість не дала вам цього зробити. Та ні, знову жартую. Коротше на диво чудовий настрій. &lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;a href="http://picasaweb.google.com/lh/photo/jiB_dnxvVYOKrFzZmfGBEQ"&gt;&lt;img src="http://lh4.ggpht.com/olena.golovata/SHO9Vlc-a-I/AAAAAAAACH0/PUKyYlSaPKs/s288/image33.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.picasa2html.com"&gt;&lt;img src="http://www.picasa2html.com/bypicasa2html.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;small&gt;created by &lt;a href="http://www.picasa2html.com"&gt;picasa2html&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;Як ми збираємося святкувати? Ще не знаю. Зараз поїду додому, потім в басейн, а потім будемо дивитись Lost який ми для себе відкрили вчора (знайшовши сайт з якого мешканці США можуть дивитися його безкоштовно в якості HD TV здається).&lt;br /&gt;&lt;br /&gt;А взагалі це перший день народження який не хочеться святкувати взагалі. Навіть не знаю чому. Просто не хочеться і все. Мабуть я досі в захваті від того що нас тут оточує, і ще гостріших почуттів не хочеться поки.&lt;br /&gt;&lt;br /&gt;Ну і під зав'язку русофобський анекдот від одного френда:&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;span style="font-style: italic;"&gt;Створив Господь мавпу. А тодi дивиться - ні, людина все ж краще. Ну, збирає вiн усiх мавп i каже: щоб до завтра менi людьми стали! Ну, мавпи цiлу нiч хвости вiдрiзали, голились, зрештою, прокидається Господь - краса! - Живуть люди у бiлих хатах iз вишневими садочками, хрущi над вишнями гудуть i т.д. Але що це? Деякi мавпи все ще у лiсi по деревах стрибають! Ну, вiн як гримне на них: я Господь ваш, я вас створив, як ви смiєте не пiдкорятись словам моiм?! Мавпи перелякались, поховались у кущах, аж тодi найсмiливiша вилазить i каже: "А мы па-украински не панимаем!"&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:234088</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/234088.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=234088"/>
    <title>Univerlife.com</title>
    <published>2008-07-22T00:03:33Z</published>
    <updated>2008-07-22T00:03:33Z</updated>
    <category term="Жовті Води"/>
    <category term="лінки"/>
    <content type="html">Може пам'ятаєте - був такий сайт де можна було почитати/написати майже про всіх викладачів українських вузів? Так ось, він знову працює о_О Я сам в шоці. Ось він: &lt;a href="http://univerlife.com/"&gt;http://univerlife.com/&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;img src="http://ips.univerlife.com/img/vyzs/000/68.gif" alt="" style="float: right;" /&gt;Записи про "Стратегію" в основному датовані 2005 роком. Це здається незадовго перед закриттям. А ось тут можна їх почитати: &lt;a href="http://ips.univerlife.com/"&gt;http://ips.univerlife.com/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Цей пост буде продубльовано у ЖЖ &lt;span class='ljuser' lj:user='olexander' style='white-space: nowrap;'&gt;&lt;a href='http://olexander.livejournal.com/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/userinfo.gif' alt='[info]' width='17' height='17' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://olexander.livejournal.com/'&gt;&lt;b&gt;olexander&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; , &lt;span class='ljuser' lj:user='ie_strategy' style='white-space: nowrap;'&gt;&lt;a href='http://community.livejournal.com/ie_strategy/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/community.gif' alt='[info]' width='16' height='16' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://community.livejournal.com/ie_strategy/'&gt;&lt;b&gt;ie_strategy&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; , &lt;span class='ljuser' lj:user='zhovty_vody' style='white-space: nowrap;'&gt;&lt;a href='http://community.livejournal.com/zhovty_vody/profile'&gt;&lt;img src='http://p-stat.livejournal.com/img/community.gif' alt='[info]' width='16' height='16' style='vertical-align: bottom; border: 0; padding-right: 1px;' /&gt;&lt;/a&gt;&lt;a href='http://community.livejournal.com/zhovty_vody/'&gt;&lt;b&gt;zhovty_vody&lt;/b&gt;&lt;/a&gt;&lt;/span&gt; .</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:233524</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/233524.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=233524"/>
    <title>Ужин во Дворце Извращений. Тим Пауэрс</title>
    <published>2008-07-19T02:15:06Z</published>
    <updated>2008-07-19T02:15:06Z</updated>
    <category term="книги"/>
    <content type="html">&lt;img src="http://www.fictionbook.ru/pages/show_cover/?file=93172&amp;amp;type=jpg&amp;amp;size=185" alt="" style="float: right;" /&gt;Така собі пригодницько-постапокаліптична фантастика. З мутантами, масовим зомбуванням, могутнім прибульцем і всім як положено. Сподобалося, хоч і не найкраще з того що я читав.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:233347</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/233347.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=233347"/>
    <title>Rosencrantz and Guildenstern Are Dead (1990)</title>
    <published>2008-07-19T02:11:07Z</published>
    <updated>2008-07-19T02:11:07Z</updated>
    <category term="кіно"/>
    <content type="html">&lt;img src="http://images.rottentomatoes.com/images/movie/coverv/79/238279.jpg" alt="" style="float: right;" /&gt;Цей фільм крутіший за варені яйця. А як же ще? Друзі Гамлета, Гарі Олдмен, Тім Рот...&lt;br /&gt;&lt;br /&gt;Хто раптом не бачив - бігом в магазин/торенти! (:</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:233111</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/233111.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=233111"/>
    <title>SKYCLAD - No daylights nor heeltaps (2002)</title>
    <published>2008-07-18T04:52:46Z</published>
    <updated>2008-07-18T04:52:46Z</updated>
    <category term="thrash"/>
    <category term="ethno"/>
    <category term="hard rock"/>
    <category term="heavy metal"/>
    <category term="музика"/>
    <content type="html">&lt;img src="http://www.spiralfrog.com/sfimages/covers/pop/cov200/drz000/z019/z0190825368.jpg" alt="" style="float: right;" /&gt;Група яка майже представляє собою цілий стиль. І стиль цей - такий мутант як folk-thrash.&lt;br /&gt;&lt;br /&gt;Чесно кажучи від треша практично нічого нема, а є такий собі фолк-хард-рок. Тим не менш дуже подобається. Слухаю цей диск вже давно, все ніяк руки не доходили написати. Можна було б порівняти з Ді Апокаліптішн Вершниками від яких відняли металеву складову. Але я не буду нагліти і таке казати (:</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:232884</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/232884.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=232884"/>
    <title>The Million Dollar Hotel (2001)</title>
    <published>2008-07-18T04:35:56Z</published>
    <updated>2008-07-18T04:35:56Z</updated>
    <category term="кіно"/>
    <content type="html">&lt;img src="http://images.rottentomatoes.com/images/movie/coverv/18/180118.jpg" alt="" style="float: right;" /&gt;Дуже і дуже пристойний фільм. Хоробре Серце, вірніше Мел Гібсон, в неочікуваному образі поганого хлопця.&lt;br /&gt;&lt;br /&gt;Ну а взагалі раджу подивитись (якщо звісно хтось раптом не бачив). Фільм вартий того щоб витратити трохи часу на його пошук, і тим більше на перегляд.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:232585</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/232585.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=232585"/>
    <title>Подмененныйю Роджер Желязны</title>
    <published>2008-07-18T04:29:39Z</published>
    <updated>2008-07-18T04:29:39Z</updated>
    <category term="книги"/>
    <content type="html">&lt;img src="http://www.fictionbook.ru/pages/show_cover/?file=78499&amp;amp;type=jpg&amp;amp;size=185" alt="" style="float: right;" /&gt;Фентезі, або іншими словами - кака. Хоча це і Желязни (тобто можна спробувати себе пересилити і таки дочитати до сторінки більше ніж 3ї), та все одно фентезі воно фентезі і є.&lt;br /&gt;&lt;br /&gt;Явно не для мене це було написано.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:232324</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/232324.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=232324"/>
    <title>Карочє! Знову про дерева</title>
    <published>2008-07-15T21:51:53Z</published>
    <updated>2008-07-15T21:54:20Z</updated>
    <category term="задачки"/>
    <category term="програмування"/>
    <category term="cpp"/>
    <content type="html">Зав'язалася дискусія з приводу задачі про дерево (&lt;a href="http://olexander.livejournal.com/231716.html"&gt;http://olexander.livejournal.com/231716.html&lt;/a&gt;). Я взяв і написав програму яка будує дерево і шукає у ньому всіма запропонованими методами. Крім того додав перевірку результату. Поки що правильно працює лише моя функція (:&lt;br /&gt;&lt;br /&gt;Так, я змішав С та С++. Мені так швидше писалося. Якщо автори виправлять свої функції то поміряємося результатами (: Чекаю апдейтів.&lt;br /&gt;&lt;br /&gt;Пара зауважень про дерево. Я заповнюю дерево елементами від 1 до ... послідовно. Тобто так як вони будуть лежати у купі. Завдяки цьому можна завжди перевірити чи правильно знайдено найближчий батьківський елемент.&lt;br /&gt;&lt;br /&gt;Текст під катом.&lt;br /&gt;&lt;br /&gt;&lt;a name="cutid1"&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;string&amp;gt;
#include &amp;lt;vector&amp;gt;

#include &amp;lt;math.h&amp;gt;
#include &amp;lt;time.h&amp;gt;

struct tree_item
{
    size_t key;
    struct tree_item* left;
    struct tree_item* right;
};

tree_item* add_item(size_t items, size_t item)
{
    if (item &amp;gt; items)
    {
        return NULL;
    }

    tree_item *i = new tree_item;
    i-&amp;gt;key = item;

    i-&amp;gt;left = add_item(items, item * 2);
    i-&amp;gt;right = add_item(items, item * 2 + 1);

    return i;
}

tree_item* build_tree(size_t items)
{
    return add_item(items, 1);
}

void destroy_tree(tree_item *i)
{
    if (i == NULL)
    {
        return;
    }

    destroy_tree(i-&amp;gt;left);
    destroy_tree(i-&amp;gt;right);
    delete i;
}

size_t get_tree_depth(const tree_item *i)
{
    if (i == NULL)
    {
        return 0;
    }

    size_t left = get_tree_depth(i-&amp;gt;left);
    size_t right = get_tree_depth(i-&amp;gt;right);

    return std::max(left, right) + 1;
}

const tree_item* find_parent_1(const tree_item* root, const tree_item *i1, const tree_item *i2)
{
    if (i1 == root || i1 == i2) return i1;
    
    if (i2 == root) return i2;

    size_t depth = get_tree_depth(root);
    size_t items = pow(2, (double)depth);
    std::vector&amp;lt;const tree_item*&amp;gt; v(items, NULL);
    v[0] = root;

    bool found1st = false, found2nd = false;
    size_t idx1st = 0, idx2nd = 0;
    for (size_t idx = 0; idx &amp;lt; items &amp;amp;&amp;amp; !(found1st &amp;amp;&amp;amp; found2nd); ++idx)
    {
        const tree_item *i = v[idx];
        if (i == NULL) continue;

        if (!found1st &amp;amp;&amp;amp; i == i1)
        {
            idx1st = idx;
            found1st = true;
        }

        if (!found2nd &amp;amp;&amp;amp; i == i2)
        {
            idx2nd = idx;
            found2nd = true;
        }

        if (idx * 2 + 1 &amp;lt; items) v[idx * 2 + 1] = i-&amp;gt;left;
        if (idx * 2 + 2 &amp;lt; items) v[idx * 2 + 2] = i-&amp;gt;right;
    }

    while (idx1st != idx2nd)
    {
        while (idx1st &amp;gt; idx2nd) --idx1st, idx1st /= 2;
        while (idx2nd &amp;gt; idx1st) --idx2nd, idx2nd /= 2;
    }

    return v[idx1st];
}

const tree_item* scan(const tree_item* cur_item, const tree_item* i1, const tree_item* i2, const tree_item** result)
{
    const tree_item* tmp1 = NULL;
    const tree_item* tmp2 = NULL;

    // end of branch
    if(cur_item == NULL) return NULL;

    // if we find one of item...
    if(cur_item == i1) tmp1 = i1;
    if(cur_item == i2) tmp1 = i2;

    // scan sub-branches
    tmp2 = scan(cur_item-&amp;gt;left, i1, i2, result);
    // if it's the nearest common root-item save it...
    if(tmp1 &amp;amp;&amp;amp; tmp2)
    {
        *result = cur_item;
        return NULL; // we can return anything... it's not important now..
    }

    tmp2 = scan(cur_item-&amp;gt;right, i1, i2, result);
    // if it's the nearest common root-item save it...
    if(tmp1 &amp;amp;&amp;amp; tmp2) *result = cur_item;

    // return to the upper level
    return tmp1;
}

const tree_item* find_parent_2(const tree_item *t, const tree_item *i1, const tree_item *i2)
{
    const tree_item* result = NULL;

    // some checks
    if(i1 == i2) return i1;

    // find it...
    scan(t, i1, i2, &amp;amp;result);

    return result;
}

const struct tree_item* find(const struct tree_item *pSubtree, const struct tree_item * pNode)
{
    const struct tree_item* pResult = (const struct tree_item*)NULL;
    if( pSubtree )
        if( pSubtree == pNode )
            pResult = pSubtree;
        else
        {
            if( pSubtree-&amp;gt;left )
                pResult = find( pSubtree-&amp;gt;left, pNode );
            if( !pResult )
                pResult = find( pSubtree-&amp;gt;right, pNode );
        }
        return pResult;
}

const struct tree_item* find_nearest_common_parent(const struct tree_item *root,
                                                   const struct tree_item * pNode1,
                                                   const struct tree_item * pNode2 )
{
    const struct tree_item* pResult = root;

    if(root)
    {
        int l = find(root-&amp;gt;left, pNode1 )?1:0;
        int r = find(root-&amp;gt;left, pNode2 )?1:0;

        if(!( l ^ r ))
        {
            find_nearest_common_parent(l?root-&amp;gt;left:root-&amp;gt;right, pNode1, pNode2 );
        }
    }
    return pResult;
}

const tree_item* find_parent_3(const tree_item *root, const tree_item *i1, const tree_item *i2)
{
    const tree_item* pResult = NULL;

    if(root)
        if(i1)
            if(i2)
                // lets try to avoid the complate tree scan
                if(find(i1, i2)) //I feel lucky
                    pResult = i1;
                else
                    if(find(i2, i1)) //I feel lucky  reloaded
                        pResult = i2;
                    else
                        //plan 'b'
                        if( find(root, i1))
                            if( find(root, i2))
                                pResult = (struct tree_item*)find_nearest_common_parent(root, i1, i2); 
    return pResult;
}

bool check_parent_item(size_t parent, size_t key1, size_t key2)
{
    while (key1 != key2)
    {
        while (key1 &amp;gt; key2) key1 /= 2;
        while (key2 &amp;gt; key1) key2 /= 2;
    }

    return parent == key1;
}

int main(int argc, char* argv[])
{
    const size_t items = 100;
    tree_item *root = build_tree(items);

    std::vector&amp;lt;const tree_item*&amp;gt; v(items, NULL);
    v[0] = root;
    for (size_t idx = 0; idx &amp;lt;= items / 2; ++idx)
    {
        const tree_item *i = v[idx];
        if (idx * 2 + 1 &amp;lt; items) v[idx * 2 + 1] = i-&amp;gt;left;
        if (idx * 2 + 2 &amp;lt; items) v[idx * 2 + 2] = i-&amp;gt;right;
    }

    struct method
    {
        std::string name;
        const tree_item* (*f)(const tree_item*, const tree_item*, const tree_item*);
    } methods[] =
    {
        { "olexander", find_parent_1},
        { "stbelial", find_parent_2},
        { "lider", find_parent_3 }
    };
    

    for (size_t m = 0; m &amp;lt; sizeof(methods) / sizeof(methods[0]); ++m)
    {
        bool error = false;
        double duration = 0.;
        for (size_t i1 = 0; i1 &amp;lt; items - 1 &amp;amp;&amp;amp; !error; ++i1)
        {
            for (size_t i2 = i1; i2 &amp;lt; items - 1 &amp;amp;&amp;amp; !error; ++i2)
            {
                clock_t start = clock();
                const tree_item *i = methods[m].f(root, v[i1], v[i2]);
                clock_t finish = clock();
                duration += (double)(finish - start) / CLOCKS_PER_SEC;

                if (i == NULL)
                {
                    std::cout &amp;lt;&amp;lt; "METHOD " &amp;lt;&amp;lt; methods[m].name &amp;lt;&amp;lt; " ERROR!!!(" &amp;lt;&amp;lt; i1 + 1 &amp;lt;&amp;lt; ", " &amp;lt;&amp;lt; i2 + 1 &amp;lt;&amp;lt; ") -&amp;gt; null" &amp;lt;&amp;lt; std::endl;
                    error = true;
                    break;
                }

                if (!check_parent_item(i-&amp;gt;key, i1 + 1, i2 + 1))
                {
                    std::cout &amp;lt;&amp;lt; "METHOD " &amp;lt;&amp;lt; methods[m].name &amp;lt;&amp;lt; " ERROR!!!(" &amp;lt;&amp;lt; i1 + 1 &amp;lt;&amp;lt; ", " &amp;lt;&amp;lt; i2 + 1 &amp;lt;&amp;lt; ") -&amp;gt; " &amp;lt;&amp;lt; i-&amp;gt;key &amp;lt;&amp;lt; std::endl;
                    error = true;
                }
            }
        }

        if (!error)
        {
            std::cout &amp;lt;&amp;lt; "Method '" &amp;lt;&amp;lt; methods[m].name &amp;lt;&amp;lt; "' duration = " &amp;lt;&amp;lt; duration &amp;lt;&amp;lt; " seconds" &amp;lt;&amp;lt; std::endl;
        }
    }

    destroy_tree(root);
    return 0;
}

&amp;lt;/const&amp;gt;&amp;lt;/const&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Змагання з пенісометрії продовжуються!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:232000</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/232000.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=232000"/>
    <title>Mr. Bungle проти RHCP</title>
    <published>2008-07-15T01:26:33Z</published>
    <updated>2008-07-15T01:29:06Z</updated>
    <category term="музика"/>
    <content type="html">Якщо раптом хто не знає то між командами Mr. Bungle та The Red Hot Chili Peppers, а вірніше між їх вокалістами, існує давня і чорна ворожнеча. Причина та витоки нехай вивчають таблоїди, але декілька смішних фактів можна згадати. Так колись Кідіс звинувачував Патона що той перейняв його манеру співу. Смішно? Смішно. Але щось же в нього там у голові перемкнулося що він таке заявив. Далі, перці не беруть участь у фестах та інших заходах де задіяний хоч один з проектів Патона, тим самим звужуючи їх поле діяльності ):&lt;br /&gt;&lt;br /&gt;В свою чергу Mr. Bungle випустили альбом California одразу після того як RHCP вистрілили своїм Californication (: Більше того, альбом патоновців містив пісню пародію на РХЦП.&lt;br /&gt;&lt;br /&gt;Ось знайшов такий кліп:&lt;br /&gt;&lt;br /&gt;&lt;lj-embed id="32" /&gt;&lt;br /&gt;&lt;br /&gt;Блін! Ще було написано тексту про проекти Патона, участь у інших командах, але якийсь глюк з постом потер половину поста ): Не буду заново писати.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:231716</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/231716.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=231716"/>
    <title>Перший варіант рішення про задачу з деревом</title>
    <published>2008-07-15T00:41:12Z</published>
    <updated>2008-07-15T17:54:03Z</updated>
    <category term="задачки"/>
    <category term="програмування"/>
    <category term="cpp"/>
    <content type="html">Власне сама задача була викладена ось тут: &lt;a href="http://olexander.livejournal.com/231150.html"&gt;http://olexander.livejournal.com/231150.html&lt;/a&gt;&lt;br /&gt;Тепер рішення. Дане рішення використовує додаткову пам'ять, а саме вектор вказівників на елементи дерева. Дерево обходиться згори-вниз зліва-напрво. Тобто вектор фактично є хіпом.&lt;br /&gt;&lt;br /&gt;При чому повний хіп будувати немає необхідності, достатньо лише відслідкувати що в хіп потрапили обидва елементи. Після цього йдемол від кожного елемента до парента. Хіп має таку властивість що у кожного елемента з індексом і його чайлди мають індекси (2*і+1) та (2*і+2)ю Отже від кожного елемента з індексом і можемо перейти до парента з індексом ((і-1)/2). Ну і все (:&lt;br /&gt;&lt;br /&gt;Ще зауважу що немає перевірок на помилки. Тобто функція буде себе непередбачувано вести якщо передані вказівники не належать одному дереву, і т.д. Але перевірки додати можна і потім (: Я просто хотів написати якнайменше коду.&lt;br /&gt;&lt;br /&gt;Та-да-да-дам:&lt;br /&gt;&lt;font color="#993300"&gt;&lt;b&gt;UPD: УВАГА! Страшенний злючий баг! Розмір вектора повинен обчислюватися на основі висоти дереваю Тобто якщо висота дерева 4 то вектор повинен містити 1 + 2 + 4 + 8 елементів.&lt;br /&gt;&lt;br /&gt;Може з часом виправлю...&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;tree_item* find_parent(tree *t, tree_item *i1, tree_item *i2)&lt;br /&gt;{&lt;br /&gt;    if (i1 == t-&amp;gt;root || i2 == t-&amp;gt; root || i1 == i2)&lt;br /&gt;    {&lt;br /&gt;        return i1;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    vector&amp;lt;tree_item*&amp;gt; v(t-&amp;gt;size, NULL);&lt;br /&gt;    v[0] = t-&amp;gt;root;&lt;br /&gt;    &lt;br /&gt;    bool found1st = false, found2nd = false;&lt;br /&gt;    size_t idx1st = 0, idx2nd = 0;&lt;br /&gt;    for (size_t idx = 0; idx &amp;lt; t-&amp;gt;size &amp;amp;&amp;amp; !(found1st &amp;amp;&amp;amp; found2nd); ++idx)&lt;br /&gt;    {&lt;br /&gt;        if (v[idx] == NULL) continue;&lt;br /&gt;        &lt;br /&gt;        if (!found1st &amp;amp;&amp;amp; v[idx] == i1)&lt;br /&gt;        {&lt;br /&gt;            idx1st = i;&lt;br /&gt;            found1st = true;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        if (!found2nd &amp;amp;&amp;amp; v[idx] == i2)&lt;br /&gt;        {&lt;br /&gt;            idx2nd = i;&lt;br /&gt;            found2nd = true;&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        tree_item *i = v[idx];&lt;br /&gt;        v[idx * 2 + 1] = i-&amp;gt;left;&lt;br /&gt;        v[idx * 2 + 2] = i-&amp;gt;right;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    while (idx1st != idx2nd)&lt;br /&gt;    {&lt;br /&gt;        while (idx1st &amp;gt; idx2nd) --idx1st, idx1st /= 2;&lt;br /&gt;        while (idx2nd &amp;gt; idx1st) --idx2nd, idx2nd /= 2;&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    return v[idx1st];&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Чекаю зауважень та коментів взагалі.&lt;br /&gt;&lt;br /&gt;А рішення без додаткової пам'яті колись згодом (: Надто вже ліниво зараз думати.&lt;br /&gt;&lt;br /&gt;PS. Кличко молодший, я чув, черговому лузеру наваляв? Вітаю усіх!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:231640</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/231640.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=231640"/>
    <title>А між тим ці люди генії</title>
    <published>2008-07-13T04:31:14Z</published>
    <updated>2008-07-13T04:38:41Z</updated>
    <category term="музика"/>
    <category term="electro"/>
    <content type="html">&lt;lj-embed id="30" /&gt;&lt;br /&gt;&lt;br /&gt;А ось у них лів... Мені здається там дах зносить намертво. Грайндкровий слем з мош-пітом не канають (:&lt;br /&gt;&lt;br /&gt;&lt;lj-embed id="31" /&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:231262</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/231262.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=231262"/>
    <title>Abigail - Forever Street Metal Bitch (2003)</title>
    <published>2008-07-12T02:42:34Z</published>
    <updated>2008-07-12T02:42:34Z</updated>
    <category term="thrash"/>
    <category term="black"/>
    <content type="html">&lt;img src="http://static.metal-archives.com/images/4/1/0/2/41022.jpg" alt="" style="float: right;" /&gt;Японський black thrash, що автоматично означає "крутотєнь невимовна". Рельно класний музон, реально класний блеко-треш (а там справді змішані ці два несумісні стилі), але при цьому японський з перших же нот (:&lt;br /&gt;&lt;br /&gt;Не дивлячись на те що в більшості випадків коли японці грають метал це виходить доволі смішно, але смішно в позитивному плані. Хоча нойз у них все ж таки краще виходить, тим не менш є справжні перли. Як ось цей, наприклад.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:231150</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/231150.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=231150"/>
    <title>Задача про загального предка елементів дерева №2</title>
    <published>2008-07-12T02:37:41Z</published>
    <updated>2008-07-12T02:37:41Z</updated>
    <category term="задачки"/>
    <category term="програмування"/>
    <content type="html">Нагадаю що соь тут - &lt;a href="http://olexander.livejournal.com/205272.html"&gt;http://olexander.livejournal.com/205272.html&lt;/a&gt; я приводив своє рішення для доволі простої задачі пошука батьківського елемента в дереві. Там же зав'язався діалог з Анонімом який зпропонував більш складну версію задачі.&lt;br /&gt;&lt;br /&gt;Отже - є дерево (: Необхідно написати функцію яка приймає корінь дерева та вказівники на 2 його довільні елементи і повертає найближчий до них батьківський елемент. Для визначеності бдемо вважати що дерево таке:&lt;br /&gt;&lt;pre&gt;
struct tree_item
{
    ...  // тут типо вказівники на ключ, дані і т.д.
    struct tree_item *left, *right;
};

struct tree
{
    int size; // мало б бути unsigned long, але пофіг
    tree_item *root;
}

&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Так, ну і функція матиме таку сігнатуру:&lt;br /&gt;&lt;pre&gt;
tree_item* find_parent(tree *t, tree_item *i1, tree_item *i2);
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Очевидно що можна реалізувати з викристанням додаткових ресурсів (створенням допоміжних структур даних і т.д.), а можна і без них. Для початку будемо вважати що можна заводити які завгодно допоміжні структури даних.&lt;br /&gt;&lt;br /&gt;Цікаво? Отаку!</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:230792</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/230792.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=230792"/>
    <title>Просто прєлєсть, а не мультфільм!</title>
    <published>2008-07-11T22:07:43Z</published>
    <updated>2008-07-11T22:07:43Z</updated>
    <category term="кіно"/>
    <category term="мистецтво"/>
    <content type="html">&lt;div align="center"&gt;&lt;lj-embed id="29" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://trinixy.ru"&gt;Триникси.ру&lt;/a&gt;: &lt;a href="http://trinixy.ru/2008/07/11/vynos_mozga_strashilka_na_noch_180_mb.html"&gt;Вынос мозга. Страшилка на ночь (18.0 мб)&lt;/a&gt;&lt;/div&gt;</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:230539</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/230539.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=230539"/>
    <title>І книжки таких мислителів розходяться мільйоними тиражами ):</title>
    <published>2008-07-11T21:45:05Z</published>
    <updated>2008-07-11T21:45:05Z</updated>
    <category term="все навколо фігня"/>
    <category term="лінки"/>
    <content type="html">Давно прагнучий отримати звання ісконнєґа пєсатєль опублікував чергову анти-омериканську агітку (&lt;a href="http://doctor-livsy.livejournal.com/365745.htmlhttp://doctor-livsy.livejournal.com/365745.html"&gt;http://doctor-livsy.livejournal.com/365745.html)&lt;/a&gt;. Факт трагічний, ніхто не сперечається. Прсто "текст нємножку по дєбільному напісан" з такими самими висновками. Але дивно не це. Дивно те що знаходяться сотні підвивал які несуть таку саму солоденько-дурнувату маячню і намагаються навіть її розвити до якоїсь подоби ідеології ):&lt;br /&gt;&lt;br /&gt;Праві були мудреці що свого часу стверджували що світ трошки більше ніж на 142,7% заповнений дебілами. ):&lt;br /&gt;&lt;br /&gt;PS спеціально для тих кому подобається Лук'яненко: мені в принципі пофіг якою людиною він є (але чомусь таки здається що не дуже гарною з точки зору мого світогляду), і готовий визнати що книги його не є повністю макулатурою. Навіть сам деякі колись прочитав. Але тут йдеться не про його творчість, та не про його печерний шовінізм (а українофобію взагалі згадувати не буду), а про те що написано фігово, написано фігню, і результати ще фіговіші.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:230148</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/230148.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=230148"/>
    <title>Helgrind-Fallen Prophet (EP)-2007</title>
    <published>2008-07-11T02:03:10Z</published>
    <updated>2008-07-11T02:03:10Z</updated>
    <category term="thrash"/>
    <category term="музика"/>
    <content type="html">&lt;img src="http://bp2.blogger.com/_nFE_1tijhA0/RrVlKOerqaI/AAAAAAAAAHY/Y0RmTFU7WF4/s320/Helgrind-Fallen+Prophet+2007.jpg" alt="" style="float: right;" /&gt;Суперовий thrash metal.&lt;br /&gt;Чимось невловимо нагадує Slayer 90х років. Гарний коротенький альбомчик (4 пісні, 14 хвилин). Залік, без питань.&lt;br /&gt;&lt;br /&gt;Якщо для вас thrash часів розквіту Slayer, Sodom, Anthrax, Kreator, Exodus та інших не порожній звук - то і ці звуки саме для вас.</content>
  </entry>
  <entry>
    <id>urn:lj:livejournal.com:atom1:olexander:229959</id>
    <link rel="alternate" type="text/html" href="http://olexander.livejournal.com/229959.html"/>
    <link rel="self" type="text/xml" href="http://olexander.livejournal.com/data/atom/?itemid=229959"/>
    <title>Futurama: The Beast with a Billion Backs (2008)</title>
    <published>2008-07-11T01:58:23Z</published>
    <updated>2008-07-11T01:58:47Z</updated>
    <category term="avant-garde metal"/>
    <category term="кіно"/>
    <content type="html">&lt;img src="http://images.rottentomatoes.com/images/movie/coverv/26/1863026.jpg" alt="" style="float: right;" /&gt;Не дивлячись на те що френди вже писали про цей мульт, я внаглу напишу теж (:&lt;br /&gt;&lt;br /&gt;Отже так. Мульт без питань заліковий, але я не згоден з тим що він кращий за попередній повнометражний. Вони як мінімум на одному рівні. А взагалі для мене перший повнометражник виглядає саме як повнометражний, а цей є просто довгою черговою серією (хоча я пам'ятаю що писав майже те саме при огляді попередньої Футурами).&lt;br /&gt;&lt;br /&gt;Коротше фанам Футурами дивитись!</content>
  </entry>
</feed>
