[Logo] Mendo Judge Discussion Board - Forums
  [Search] Search   [Recent Topics] Recent Topics   [Hottest Topics] Hottest Topics   [Members]  Member Listing   [Groups] Back to home page 
ne mi vadi tocno  XML
Forum Index » C/C++
Author Message
stojan97



Joined: 07/10/2014 21:34:00
Messages: 8
Offline

http://mendo.mk/Task.do?id=17 nikako da mi izvadi tocna:


This message was edited 6 times. Last update was at 15/01/2015 18:54:21

lekov



Joined: 12/12/2014 11:52:12
Messages: 30
Offline

Еве ти еден тест пример за кој кај тебе излезот дава 19, а треба да даде 16.
Влез: 26 734
Излез: 16

Еве што работи твојот код за погорниот тест пример:

Значи, на почетокот се извршува while-циклусот(zad < k, 0 < 734) и при првото вртење zad се зголемува за 40, den се зголемува за 1. Потоа, пак е исполнет условот и zad пак се зголемува за 40, а den за 1(zad сега има вредност 80, а den 2). При 18 вртење, zad има вредност 720, а den има вредност 18. Циклусот може да се изврши уште 1 пат затоа што 720 е помало од 734. Па така, zad станува 760, а den 19. Програмата изглевува од while-циклусот и печати 19(што е погрешно).

Пробај да добиеш што поголема вредност на задачи што можат да се решат за еден ден. Од 26 членови, можеш да извадиш вкупно 46 задачи(2 * 5 + 4 * 9 = 10 + 36 = 46) што може да се напишат за еден ден. За 15 дена, ќе бидат напишани вкупно 690 задачи(15 * 46). 690 сеуште е помало од 734 па така while-циклусот ќе се изврши уште еден пат. При последното извршување(16 ден), ќе бидат напишани вкупно 736 задачи. Програмата излегува од while-циклусот и печати 16.

Пробај да напишеш код кој за 26 членови ќе дава максимален број на задачи што можат да се решат за еден ден. Кодот нека има услов кој ќе одредува дали задачите ќе ги решава само група од 3, од 5 или комбинација(едниот дел од задачите ќе ги решаваат групи од по 3 члена, а другиот дел групи од по 5 члена).

Ако сеуште имаш проблем, слободно пиши.

This message was edited 1 time. Last update was at 21/01/2015 10:06:37

stojan97



Joined: 07/10/2014 21:34:00
Messages: 8
Offline

Nikako ne mi teknuva kako da napisam kombinacija
lekov



Joined: 12/12/2014 11:52:12
Messages: 30
Offline

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

Пред да почнеш да пишуваш, убаво прочитај ги овие две правила:
3. членовите на комисијата кои нема да влезат во ниту една група не пишуваат задачи
4. членовите се групираат така што за еден ден се напишат што е можно повеќе задачи

k - број на членови, m - максимален број на решенија што можат да се напишат за еден ден
k = 26, m = 46
k = 13, m = 23
k = 12, m = 20
k = 4, m = 5
k = 5, m = 9
k = 6, m = 10
к = 7, m = 10
stojan97



Joined: 07/10/2014 21:34:00
Messages: 8
Offline

Ako k=26 m=46 Ok to go najdov 26 (2*3+4*5)clenovi koj mozat 2*5+4*9=46 max zadaci za eden den.Ako k=13 (3+2*5)=3+10 a toa e 1*5+2*9=5+18=23 max zadaci.
Ako k=12 n=20 12(3+2*5-1 ne pisuva zadaci) m=? nezz 2 kolku im treba maximum za eden den.?
lekov



Joined: 12/12/2014 11:52:12
Messages: 30
Offline

Еве ќе ти објаснам за k = 26, k = 7 и k = 8. Како и претходно, m ќе биде максимален број на решенија за еден ден и на почеток ќе има вредност 0.

За k = 26:
1. Проверуваме дали 26 е делив со 5 без остаток. Бидејќи не е, од 26 одземаме 3(k = 26 - 3 => k = 23), а на m додаваме 5(m = 0 + 5 => m = 5).
2. Проверуваме дали 23 е делив со 5 без остаток. Бидејќи не е, од 23 пак одземаме 3(k = 23 - 3 => k = 20), а на m пак додаваме 5(m = 5 + 5 => m = 10).
3. Проверуваме дали 20 е делив со 5 без остаток. Бидејќи е, го делиме 20 со 5 и добиваме 4. Од k одземаме 4 * 5 = 20(k = 20 - 20 => k = 0), а на m додаваме 4 * 9 = 36(m = 10 + 36 => m = 46).
4. Бидејќи немаме повеќе членови(k = 0), завршуваме и го добиваме максималниот број на решенија за еден ден(m = 46).

За k = 7:
1. Проверуваме дали 7 е делив со 5 без остаток. Бидејќи не е, од 7 одземаме 3(k = 7 - 3 => k = 4), а на m додаваме 5(m = 0 + 5 => m = 5).
2. Проверуваме дали 4 е делив со 5 без остаток. Бидејќи не е, од 4 одземаме 3(k = 4 - 3 => k = 1), а на m додаваме 5(m = 5 + 5 => m = 10).
3. Бидејќи имаме уште 1 член, тој не може да формира група од 3 или 5 па затоа тука завршуваме. Максималниот број на решенија за еден ден ќе биде 10.

За k = 8:
1. Проверуваме дали k е делив со 5 без остаток. Бидејќи не е, од 8 одземаме 3(k = 8 - 3 => k = 5), а на m додаваме 5(m = 0 + 5 => m = 5).
2. Проверуваме дали k е делив со 5 без остаток. Бидејќи е, го делиме со 5 и добиваме 1. Од k одземаме 1 * 5 = 5(k = 5 - 5 => k = 0), а на m додаваме 1 * 9 = 9(m = 5 + 9 => m = 14).
3. Бидејќи немаме повеќе членови(k = 0), максималниот број на решенија за еден ден ќе биде 14.
stojan97



Joined: 07/10/2014 21:34:00
Messages: 8
Offline

a kak ke bide za k=7 m=19,fala ti mnogu!

This message was edited 2 times. Last update was at 17/01/2015 16:06:28

lekov



Joined: 12/12/2014 11:52:12
Messages: 30
Offline

stojan97 wrote:a kak ke bide za k=7 m=19,fala ti mnogu!

Не може за k = 7, m да биде 19. Ако мислиш за k = 7, n = 19, тогаш:
7 не е делив со 5, па затоа 7 - 3 = 4. m = 0 + 5 => m = 5.
4 не е делив со 5, па затоа 4 - 3 = 1. m = 5 + 5 => m = 10.
Нема повеќе членови од кои може да се формираат групи. Максимум за m ќе биде 10.

Ден 1: Ќе бидат напишани 10 задачи. 10 сеуште е помало од бараниот број 19.
Ден 2: Ќе бидат напишани 20 задачи. 20 е поголемо од 19. Програмата печати 2.
stojan97



Joined: 07/10/2014 21:34:00
Messages: 8
Offline

eve so naprajv
za se mi vadi tocno samo za n=4 k=1000 treba 200 dena a mi vadi 167 dena mozi da mi kazis so e fintata.
I ako mojs da mi podobjasnis zosto bas so 5 provervame dali e deliv ako ne e odzemame so 3 itn..

This message was edited 2 times. Last update was at 18/01/2015 02:38:44

lekov



Joined: 12/12/2014 11:52:12
Messages: 30
Offline

stojan97 wrote:
za se mi vadi tocno samo za n=4 k=1000 treba 200 dena a mi vadi 167 dena mozi da mi kazis so e fintata.

Неточен услов во вгнездениот while-циклус.

??? while(n != 0) { ... } ??? На почеток, n = 4. Одземаме 3(бидејќи не е делив со 5) и добиваме 1. Бидејќи 1 != 0, пак се извршува while-циклусот. Пак одземаме 3 и добиваме -2... На никој начин не смее да се добие негативен број за n.

Наместо тоа напиши: while(n >= 3) { ... }, другото се ќе биде исто и работи за сите тест примери.


stojan97 wrote:
I ako mojs da mi podobjasnis zosto bas so 5 provervame dali e deliv ako ne e odzemame so 3 itn..

За k = 26:
26 не е делив со 3, затоа одземаме 5(k = 26 - 5 => k = 21) а m го зголемуваме за 9(m = 0 + 9 => m = 9).
21 е делив со 3, затоа одземаме 7 * 3 = 21(k = 21 - 21 => k = 0) а m го зголемуваме за 7 * 5 = 35(m = 9 + 35 => m = 44).

Максимум за k = 26 рековме дека е 46 задачи за еден ден, а ако делиме со 3, добиваме 44.
stojan97



Joined: 07/10/2014 21:34:00
Messages: 8
Offline

fala ti mnogu za se alal neka ti e samo sakav uste da prasam kako raboti za site primeri da se deli so 5
lekov



Joined: 12/12/2014 11:52:12
Messages: 30
Offline

stojan97 wrote:fala ti mnogu za se alal neka ti e samo sakav uste da prasam kako raboti za site primeri da se deli so 5


Имаш објаснето за k = 26, k = 7 и k = 8 во мојот трет пост погоре. Ако имаш уште нешто нејасно со задачата слободно пиши ми ПП.
 
Forum Index » C/C++
Go to:   
Powered by JForum 2.1.8 © JForum Team