Page 38 of 79

Posted: Mon Nov 03, 2008 12:52 pm
by Amikae
Не толкова смисловото решение, колкото превеждането. Отдавна не съм писал, а и като писах не бях кой знае колко добър. Сега когато всичко ми е отмито от главата ни дават още един семестър обектно ориентирано програмиране и за нищо не ставам :wink:

Posted: Mon Nov 03, 2008 1:39 pm
by Moridin
Дрънни едно бързо решение в псевдокод или в текст и ще ти го напиша в Ц++. Защото:

1) нямам много време да мисля (тя е лесна де, ще се справиш)
2) да си върнеш формата ;р

Posted: Mon Nov 03, 2008 2:47 pm
by Amikae
Чакай сега да видим дали ще успея да направя нещо :lol:

Входните данни се четат от текстовия файл CANS.INP.

На първи ред цяло положително число N<1000, което задава броя на тубите и C между 1 и 1000 равно на разхода за изминаване на единица разстояние. Следващия ред са целите N на брой неотрицателни числа(всяко не по голямо от 1000), които задават количествата на бензин в тубите според една избрана посока на обхождане на шосето, при която тубите получават последователните номера от 1 до N.

Във входния файл има още един ред, на който са записани разстоянията между двойките последователно поставени туби - първото число задава разстоянието между първата и втората туба, второто число - между втората и третата и т.н., а последното число е разстоянието между последната туба и първата. Тези разстояния са цели положителни числа, не по-големи от 1000. Навсякъде във входния файл за разделител между две числа от един ред е използвана една шпациа(какво? :shock: ).

Изходните данни трябва да бъдат записани като едно цяло число в текстовия файл CANS.OUT. Ако не е възможно да се осъществи обиколката, това число трябва да бъде равно на търсеното минимално количество безнин. В противен случай трябва да бъде изведен номера на тубата, от която може да започне и успешно да се завърши обиколката. Ако съществуват повече от една възможности, трябва да се изведе най-малкият възможен номер.

:shock: Е не мога да разбера какво трябва да се смята. Условието е написано така, че да се напише в програмата. Отделил съм нещата, но не виждам какво може да се смята.

CANS.INP
3 1
1 1 1
1 1 1
CANS.OUT
1

Сигурно това трябва да ми помага с нещо, но изобщо не вдявам. :?

Чакай пак отначало да помисля... Броя на тубите си го въвеждаме(N), разхода си го въвеждаме(C) за единица разстояние, след това отново N ( :shock: ) задава количеството на бензин в тубите, а това за посоката 'ич не ми е ясно :)

На реда за разстоянията на двойките туби предполагам трябва да въведем отделни числа за разстоянията между тубите(X,Y?)... Това за шпациата нищо не ми говори. И от тук нататък ми е напълно неясно какво трябва да се стори :roll:

Дълъг коментар, в който не написах почти нищо съществено! :lol: :oops:

Posted: Mon Nov 03, 2008 4:32 pm
by Moridin
Ще ти разясня условието (тъй като половината ти пост е само повтарянето му ;р). Нищо не трябва да въвеждаш. Всички данни са въведени във файла CANS.INP, от който трябва да се чете. Това, че числата са отделени със шпации, ще ти укаже как да четеш числата (да кажем, че за смисловото решение това не е важно).

Имаш един ред с общи данни - броят на тубите и разхода за 1км.
После имаш един ред с количеството бензин във всяка туба. Всичко това сложно обяснение за посоката означава просто, че тубите са номерирани от 1 до N и ти трябва да използваш тази номерация в отговора. На третия ред са разстоянията между така номерираните туби.

Задачата е да намериш туба, от която като тръгнеш, бензинът да ти стигне за цялото шосе. Ако това не е възможно от никоя туба, трябва да напишеш минималното количество бензин, нужно за цялата обиколка (това е съвсем очевидно как се смята).

Ще разясня примера: имаш 3 туби и 1км харчи 1л бензин.
В всяка от трите туби имаш по 1л бензин и между тубите има по 1км разстояние.

При тази постановка е очевидно, че от която и туба да тръгнеш, бензинът ще ти стигне. Ето защо отговорът е тубата с най-малък номер (както е указано в условието, ако има няколко възможности), която е номер 1.

Пример, в който няма решение:

3 2
1 2 1
1 1 1

тук е същото, но 1км харчи 2л бензин. Ще стигнеш донякъде само ако тръгнеш от туба номер 2 - бензинът ще стигне до туба номер 3. Но оттам до туба номер 1 бензинът не стига. Следователно в този вариант задачата няма решение и ти трябва да напишеш като отговор числото 6 - това са литрите бензин, които ще ти трябват, за да обходиш пистата от три километра (тук доста подсказвам как се пресмята това количество бензин).

Задачата е доста улеснена от факта, че единствения ти възможен маршрут е кръгов, т.е. трябва само да събираш количества бензин. Можеше тубите да са свързани по произволен начин и щеше да е доста по-интересно :mrgreen: В момента задачата се решава с прости цикли, а още по-лесното е, че решението изисква най-малкият номер на туба, от която ще стане обиколката, та можеш да спреш веднага като го намериш :)

Та сега вече можеш ли да направиш алгоритъм :)

Posted: Mon Nov 03, 2008 4:43 pm
by thunder
ааааааа как ме изпревари бе! тъпия форум не се отваряше половин час и естествено супердългия ми пост вече няма смисъл :)

Съвет - първо направи алгоритъма, като си вкараш някакви примерни данни на ръка, а след това започни да четеш тези данни от файл. Това да четеш числа от файл не е най-важното в тази задача :)

Posted: Mon Nov 03, 2008 4:43 pm
by Amikae
Определено това доста ми разясни нещата. Мисля, че бих могъл да я напиша, но уви време за това нямам. В момента работя и нямам време да пиша... Задачата ми трябва за тази вечер, а ми се струва, че няма да е особено много редове, дали ще ти е проблем да я напишеш?

Posted: Mon Nov 03, 2008 4:47 pm
by Moridin
Аз няма да мога за тая вечер, но може би някой от колегите тук ще се смили над теб ;р

Posted: Mon Nov 03, 2008 4:57 pm
by Amikae
Някоя благородна душа дали ще се намери :D ?

Posted: Mon Nov 03, 2008 6:51 pm
by thunder
е ти се сети баси...

аз в нас кьорав компилатор нямам, пък и С не съм помирисвал от доста време, не че Джавата е кой знае колко различна :)

Posted: Mon Nov 03, 2008 7:32 pm
by Amikae
Нищо момци. И без точиците от задачата ще минем. Но определено щяха да помогнат за изпита :)

Posted: Wed Nov 05, 2008 8:05 pm
by The Dragon
Къде мама му дееба мога да намеря статус за Mono 2.0 и Debian :( Никъде не можеш да намериш и хинт кога смятат да го качат ...

Posted: Thu Nov 06, 2008 10:32 am
by Roamer
Като начало, нали знаеш, че в момента Debian е малко замразен заради предстоящото излизане на Lenny - Debian 5.0? Покрай това има доста пакети, които или се появяват в experimental (а не в unstable и после testing), или изобщо не се появяват - ако се появят, ама само в experimental или unstable, а после някой открие проблем във версията в testing, ще е по-трудно да тако'ата.

Having said that, специално с Mono положението е и малко по-разбираемо: maintainer на Debian-ския пакет е групата pkg-mono - http://pkg-mono.alioth.debian.org/ - там има връзка към тяхно си локално хранилище за пакети на http://debian.meebey.net/pkg-mono/ - и там като че ли има пакети за 2.0pre3. Да, това не е окончателното 2.0, така е. Май най-доброто, което можеш да направиш в момента, е да драснеш едно мейлче до pkg-mono-devel@lists.alioth.debian.org или до pkg-mono-group@lists.alioth.debian.org и да подпиташ дали някой го бори и какво става :)

Добавено: А всъщност и според разни неща, писани в pkg-mono-devel@, версия 2.0 няма да влезе в Lenny изобщо, там ще си остане 1.9.1, което е сега, а версия 2.0 ще се появи по-късно в experimental и unstable и после в testing след излизането на Lenny.

Posted: Wed Nov 12, 2008 9:03 am
by The Dragon
Такаа, оказа се че дори на Виста/2008 сървър Windows Firewall има един страхотен проблем - позволява на програми чрез API-та сами да си добавят изключения и да отварят портове. това важи и за предишни версии на Windows. Идеи как мога да предодвратя това да се случва?

Posted: Fri Nov 14, 2008 11:52 am
by Roamer
Не е истина просто... :)

Малко предистория: във FreeBSD Ports Collection, ако компилираш нещо и нещо някъде се счупи, системата ти казва "виж какво, компилацията на еди-кой си порт не мина; ако искаш, драсни едно съобщение до човека, който поддържа този порт на еди-кой си e-mail адрес, като му пратиш логовете и тия два-три файла, за да може той да разбере какво става."

В този контекст, съобщенийце от един от хората, които поддържат доста портове, до общ пощенски списък...

http://lists.freebsd.org/pipermail/free ... 51413.html
Ade Lovett wrote:Subject: Time enough, and more

A plea, since there currently appears to be a worldwide epidemic of
broken timepieces.

If you (that'd be the generic you) see a port "miraculously fail",
with something like the following in the configure output:

[...]
checking for a BSD-compatible install... /usr/bin/install -c -o root -
g wheel
checking whether build environment is sane... configure: error: newly
created file is older than distributed files!
Check your system clock
[...]


Please, take the few milliseconds (or not, as the case may be, after
all, your clock is broken) to actually READ the message and take
appropriate corrective action, BEFORE sending out emails to the poor
sod in "Please report the problem to ...", varying from a state of
utter confusion, to formal explanation required as to why I'm hacking
your system.

Thanks awfully.

Love and kisses.

-aDe

Posted: Thu Nov 20, 2008 4:46 pm
by Roamer
Доста интересно мнение (и, според мен, правилно :)) от малко неочаквана гледна точка:
http://tratt.net/laurie/tech_articles/a ... o_reliable