Informatică, întrebare adresată de myhnea3377, 8 ani în urmă

pbinfo problema 3335

Cerința
Toffeeman vrea să împartă c caramele la p prichindei astfel încât primul să ia k caramele, al doilea k+1 caramele, al treilea k+2 caramele, şi aşa mai departe. De asemenea, Toffeeman vrea să rămână cu cât mai puţine caramele. Aflaţi cu câte caramele rămâne Toffeeman.

Date de intrare
Programul citește de la tastatură numerele c şi p.

Date de ieșire
Programul va afișa pe ecran numărul caramelelor rămase.

Restricții și precizări
1 ≤ c ≤ 1018
1 ≤ p ≤ 109
1 ≤ k ≤ c

Exemplu
Intrare
23 5

Ieșire
3

Răspunsuri la întrebare

Răspuns de AfloareiAndrei
7

Tie la -iesire- iti trebuie restul impartirii caramele / prichindei.

23 / 5 = 4 (rest 3) <- Toffeeman ramane cu 3 caramele

Daca vrei sa afli cate caramele primeste fiecare copil, tine cont ca rezultatul impartirii c / p (in cazul nostru acel 4) este nr de caramele pe care il primeste copilul din mijloc. Ex:

copii -> 1=(2c), 2=(3c), 3=(4c), 4=(5c), 5=(6c).

Daca nr de copii este par. rezultatul imparitii este nr de caramele pe care il are primul copil din a 2 jumatate.

EX: copii = 6, caramele = 43

43 / 6 = 7 (rest 1) <-Toffeeman ramane cu o caramea

acum impartim grupul de copii in 2 adica 6 / 2 = 3 (deci al 3 + 1-lea copil o sa primeasca 7 caramele, pentru ca este primul din a 2 jumatate)

| 1=(4c), 2=(5c), 3=(6c)|      |4=(7c), 5=(8c), 6=(9c)|

Spor!


Utilizator anonim: pentru 12 bomboane si 4 copiii rezultatul nu este 12 % 4
Utilizator anonim: copii*
cristianradu587: Am obtinut 59 de puncte:
cristianradu587: #include
#include
using namespace std;
int main()
{
int n,s=0,S=0,p,t;
long long c,k=0;
cin>>c>>p;
k=floor((c-(p-1)*p/2)/p);
k=k;
s=c-(k*p+(p-1)*p/2);
cout< return 0;

}
Alte întrebări interesante