[Logo] Mendo Judge Discussion Board - Forums
  [Search] Search   [Recent Topics] Recent Topics   [Hottest Topics] Hottest Topics   [Members]  Member Listing   [Groups] Back to home page 
Messages posted by: lekov
Forum Index » Profile for lekov » Messages posted by lekov
Author Message
Anel wrote:da pomogni nekoj oti ne ja sfajkjam


Гостин
Сашко решил да оди на гости кај неговите внуци Сања и Смиле и за нив купил 2 пакетчиња со бомбони. Но, тој забележал дека во пакетчињата има различен број на бомбони, па решил да ги препакува со цел да ги изедначи. Дури препакувал сфатил дека можеби нема да може точно да ги распредели сите бомбони и да излезе по еднаков број за двајцата, па одлучил дека доколку има такви, нив ќе ги изеде самиот. Сепак, се обидел да распредели најмногу од бомбоните што било можно.

Кога Сања го добила своето пакетче, ги преброила бомбонита и за секоја бомбона решила по 7 задачи на Мендо. Колку задачи решила Сања?



Влез
Во првиот ред се дадени 2 броја, X и Y (1 <= X,Y <= 10 000), кои го означуваат бројот на бомбони во првото и второто пакетче, соодветно.



Излез
Излезот се состои од еден ред во кој е запишан бројот на задачи кои ги решила Сања.



Ограничувања
Временско ограничување: 1 секунда
Мемориско ограничување: 64 мегабајти



Примери

влез
4 7
излез
35


влез
10 12


излез
77


За првиот тест случај:
влез
4 7

излез
35

Во пакетчето на Сања има 4 бомбони а во пакетчето на Смиле има 7 бомбони. Не се изедначени, па затоа треба да се изедначат. Бидејќи на никој начин не може да се изедначат, Сашко мора да изеде 1 бомбонче. Остануваат вкупно 10 бомбончиња. 10-те бомбончиња може да се изедначат и да се поделат по 5 на Сања и по 5 на Смиле. Бидејќи Сања решава 7 задачи на мендо за секое бомбонче, таа ќе реши 35 задачи(5 * 7). Тоа ти е излез.

За вториот тест случај:
влез
10 12

излез
77

Бомбоните не се изедначени, но може веднаш да се изедначат без Сашко да изеде бомбон. Имаме вкупно 22 бомбончиња. 22-те бомбончиња може да се поделат по 11 на Сања и по 11 на Смиле. Сања ќе реши 77 задачи на мендо(11 * 7).
BATIR wrote:
jas ja resiv ovaa zadaca po moe zosto mi dava samo dva tocni odgovori?


#include <iostream>


using namespace std;

int main()
{
int n, i, sleden;
int prv=0;
int vtor=1;

cin>>n;

cout<<1<<endl;
for(i=1; i<n; i++)
{

sleden=prv+vtor;
prv=vtor;
vtor=sleden;

cout<<sleden<<endl;
}
return 0;
}


Ако збориш за оваа задача, тогаш треба да печатиш колку Фибоначиеви броеви има помеѓу p и k наместо да ги печатиш n-те Фибоначиеви броеви.

влез
101 114
133 360
113 243

Од овој влез, сите броеви кои ги кажала Ана се деливи со збирот на нивните цифри(114, 360 и 243), додека кај Стефан само бројот 133 е делив со збирот на неговите цифри. Така, Стефан ќе добие 2 поени за бројот 133, додека Ана ќе добие 6 поени за 3-те броевите што ги кажала.
Е сега, ако Ана каже број што е делив со збирот на неговите цифри, на Стефан му се одзема 1 поен, и обратно, за секој број на Стефан што е делив со збирот на неговите цифри, на Ана и се одзема 1 поен. Стефан има само 1 таков број и затоа на Ана и се одзема 1 поен(6 - 1 = 5). На Ана сите 3 броеви и се деливи со збирот на нивните цифри, па затоа на Стефан му се одземаат 3 поени(2 - 3 = -1).

излез
-1 5
Ana
AngryAce wrote:да да, for (int j=i+1;j<=knigi;j++){ тука треба да е само '<' а не '<='
инаку кај мене си работи фино со <= а на мендо не

Не може кај тебе да си работи фино. Низите почнуваат од 0 и завршуваат до n - 1. Така да, ако сакаш да вртиш низ низата, ќе користиш (i < n) или (i <= n - 1).
AngryAce wrote:
ne znam zosto "j><=knigi" dava greski na mendo koga kaj mene raboti se vo red

Океј тогаш
AngryAce wrote:

Ај ако сакаш објасни ми што ти значи тоа j><=knigi.


Ти поправив 2 грешки и работи за 10/10. Види погоре каде си згрешил.
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 во мојот трет пост погоре. Ако имаш уште нешто нејасно со задачата слободно пиши ми ПП.
Не отварај нови теми за иста задачи ако веќе имаш отворено. Инаку, пишувај во старата тема, ти одговорив таму.
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 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.
Еве ќе ти објаснам за 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.
Земи си некој лист и молив и пробај да ги решиш на листот прво. Јас ќе ти дадам број на членови и максимум на задачи што можат да ги напишат за еден ден, а ти поиграј си малку со броевите и види како јас сум дошол до тој максимум на задачи за еден ден.

Пред да почнеш да пишуваш, убаво прочитај ги овие две правила:
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
Еве ти еден тест пример за кој кај тебе излезот дава 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 члена).

Ако сеуште имаш проблем, слободно пиши.
Пробај со менување на местата на броевите. Пример:

Ќе направиш 3 споредби(a > b, a > c, b > c) и ако е точен изразот ќе им ги смениш местата. На крај само ги печатиш a, b и c.
 
Forum Index » Profile for lekov » Messages posted by lekov
Go to:   
Powered by JForum 2.1.8 © JForum Team