[Logo] Mendo Judge Discussion Board - Forums
  [Search] Search   [Recent Topics] Recent Topics   [Hottest Topics] Hottest Topics   [Members]  Member Listing   [Groups] Back to home page 
Problem so zadacata 46.Помош од тренинг, државно 2010  XML
Forum Index » Други задачи
Author Message
Done



Joined: 13/03/2011 21:56:26
Messages: 3
Offline

Е сега, малце не ја сватив убаво ама ако добро ја сватив, примерот што е даден во самата задача има грешно решение. Еве зошто:
Линк до задачата!

Пишува дека влезот е
100 5
3
А 1 10
B 2 5
C 3 1

Излез:
C 7


Е сега, Ako С е најдобра можност тогаш цената не би била 7 туку 5.


Бидејќи Трпе ќе им достави 99 (од можните 100 документи).

Ќе ја користи втората опција со преполовување. Следува.

(99+1)/2= 50 ... Цена=1
50/2=25 ... Цена=2
(25+1)/2=13 ... Цена = 3
(13+1)/2=7 ... Цена = 4
(7+1)/2=4 ... Цена = 5

И бидејќи им дал 99 документи, еден му останал и фирмата му вратила 4, тој имал 5 документи и платил 5 денари за услугата.

Не бев сигурен дали сум во право бидејќи не ја сватив баш најдобро задачата па затоа ви пишувам. Ако може одговор ве молам

Фала.

This message was edited 2 times. Last update was at 30/03/2011 17:54:33

mile



Joined: 31/12/2009 17:32:27
Messages: 92
Offline

50 (100/2)+25(50/2)+13 ((25+1)/2)+6(12/2)+1.
Првите 4 пати се користи пакет услугата од по 1 пара, а на крај за еден документ (со кој се стигнува до точно 95) се користи едниченчата услуга од 3 пари. Вкупно 4*1+3=7.
Трпе мора да има точно 5 необработени документи.
Done



Joined: 13/03/2011 21:56:26
Messages: 3
Offline

Како добиваш 6 четвртиот пат. Кога имаш (13+1)/2 а тоа е 7.


А мојот начин на решавање не е точен??
Vikjan94



Joined: 22/02/2011 20:11:00
Messages: 27
Offline

Done wrote:Како добиваш 6 четвртиот пат. Кога имаш (13+1)/2 а тоа е 7.


А мојот начин на решавање не е точен??


(13+1)/2=7, но толку процесира. Значи, му остануваат уште 13-7=6 непроцесирани.
MOI



Joined: 07/07/2010 16:31:48
Messages: 440
Offline

Done wrote:Како добиваш 6 четвртиот пат. Кога имаш (13+1)/2 а тоа е 7.


А мојот начин на решавање не е точен??

Да, но ако претходно имал 13, и агенцијата процесирала (13+1)/2 = 7, остануваат 13-7=6 документи.

Во секој случај - за тоа е одбран и ваков пример во текстот на задачата (а сега приметив дека имало и такво прашање и објаснување за време на натпреварот), за да се покаже дека Трпе секогаш на агенцијата и ги дава сите документи кои ги има во моментот - значи не може да и даде 99/100 документи за процесирање.
Done



Joined: 13/03/2011 21:56:26
Messages: 3
Offline

MOI wrote:
Done wrote:Како добиваш 6 четвртиот пат. Кога имаш (13+1)/2 а тоа е 7.


А мојот начин на решавање не е точен??

Да, но ако претходно имал 13, и агенцијата процесирала (13+1)/2 = 7, остануваат 13-7=6 документи.

Во секој случај - за тоа е одбран и ваков пример во текстот на задачата (а сега приметив дека имало и такво прашање и објаснување за време на натпреварот), за да се покаже дека Трпе секогаш на агенцијата и ги дава сите документи кои ги има во моментот - значи не може да и даде 99/100 документи за процесирање.


Ок, фала многу.

Оваа реченица е тоа што ме збуни најмногу.

Значи, најчесто е прифатливо да се достават сите можни документи, и да се користи пакет услугата еднаш, па повторно на преостанатите документи, па повторно на преостанатите... се до даден момент. Нормално, не е секогаш така.


Заради таа реченица помислив дека може да не се достават сите документи
Goran1



Joined: 22/09/2010 23:02:31
Messages: 18
Offline

Ако може некој да ми каже што да променам во кодот (Pascal). Локално ми работи, но кога ја праќам ми дава Runtime Error на сите тест примери
[code]
bedzo



Joined: 18/01/2011 02:05:03
Messages: 234
Offline

Ова да не ти е вишок? 38ми ред.
readln;
Goran1



Joined: 22/09/2010 23:02:31
Messages: 18
Offline

Не е, пробав и без тоа, пак не работи.
MOI



Joined: 07/07/2010 16:31:48
Messages: 440
Offline

Goran1 wrote:Не е, пробав и без тоа, пак не работи.

Прилично сум сигурен, дека кога правиш
      ReadLn(nekojString, nekojCelBroj);
програмата ја чита целата линија во nekojString (вклучувајќи ги тука празните места), и потоа нема што да смести во nekojCelBroj.

Еве ја поправената програма - одамна не сум работел со Паскал, па многу е веројатно да има полесен начин да се направи ова:
Променет е само начинот на читање на податоците. Ништо друго во програмата не ти менував. Вака ти поминува решението на сите 20 тест случаи.
metotra



Joined: 04/03/2012 20:30:28
Messages: 8
Offline

да не отворам нова тема, тука ќе го поставам прашањето, ова подоле е кодот, и на 9 и 11 пример не ми поминува, ај ако некој ја најде грешката нека пише...
9 и 10 пример Runtime Error (излезен код различен од 0).

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
long long n,m,br,i,j,a,b,rez[101],neobraboteni,cena[101],prom,max=9999999;
string im[101];
cin>>n>>m>>br;
for (i=1;i<=br;i++)
{
rez[i]=0;
cin>>im[i]>>a>>b;
neobraboteni=n;
for(j=1;j<=9999;j++)
{
if (neobraboteni%2==1)
{
if ((neobraboteni+1)/2*a<b && (neobraboteni+1)/2>=m)
{
neobraboteni-=(neobraboteni+1)/2;
rez[i]+=(neobraboteni+1)/2*a;
}
else if ((neobraboteni+1)/2*a>=b && (neobraboteni+1)/2>=m)
{
neobraboteni-=(neobraboteni+1)/2;
rez[i]+=b;
}
else
{
rez[i]+=(neobraboteni-m)*a;
neobraboteni=m;
}
}
else
{
if ((neobraboteni)/2*a<b && (neobraboteni)/2>=m)
{
neobraboteni-=(neobraboteni)/2;
rez[i]+=(neobraboteni)/2*a;
}
else if ((neobraboteni)/2*a>=b && (neobraboteni)/2>=m)
{
neobraboteni-=(neobraboteni)/2;
rez[i]+=b;
}
else
{
rez[i]+=(neobraboteni-m)*a;
neobraboteni=m;
}
}
if (m==neobraboteni) break;
}
if (max>rez[i])
{
max=rez[i];
prom=i;
}

}

cout<<im[prom]<<" "<<max;


return 0;
}

This message was edited 1 time. Last update was at 26/04/2012 21:06:49

tStojkovski



Joined: 13/02/2010 14:23:00
Messages: 108
Location: Гостивар
Offline

Стави во [code] тагови вака не се чита
[Email] [MSN]
metotra



Joined: 04/03/2012 20:30:28
Messages: 8
Offline


This message was edited 4 times. Last update was at 26/04/2012 22:31:49

Goran1



Joined: 22/09/2010 23:02:31
Messages: 18
Offline

Не ми е јасно зошто баш вака мора да се справам со тој дел. Се обидов влезот да ми биде
read(ime[i]);
readln(a[i],b[i]);[code]
но и така не работи. Ќе морам изгледа да ја користам функцијава. Некој што работи во Pascal ако има идеја како полесно да се справам со проблемов нека ми помогне. Инаку за ваков тип на проблем можно ли е да има толеранција на натпревар?
Denis


[Avatar]

Joined: 29/01/2010 18:55:07
Messages: 27
Offline

Probaj od stringot da go izdvois imeto, prviot broj i vtoriot broj. koga ke go najdes prvoto prazno mesto do tamu ti e imeto. i potoa od string prefrluvaj vo broj (za da go najdes prviot broj) istoto go iskoristi i za vtoriot broj

The function of good code is to make the complex appear to be simple.
[Email]
 
Forum Index » Други задачи
Go to:   
Powered by JForum 2.1.8 © JForum Team