Problema Vultur
2Am vazut pe forumul Infoarena o problema foarte faina, care se poate gasi si pe timus http://acm.timus.ru/problem.aspx?space=1&num=1222. Problema suna cam asa: Fie un numar natural N (N <= 3000). Sa se scrie N ca suma de numere naturale (oricate), cu proprietatea ca produsul termenilor sumei este maxim. De exemplu pt N = 5, avem 5 = 2 + 3, 2*3 = 6, deci produsul maxim este 6. Pentru N = 6, avem 6 = 3 + 3 = 2 + 2 + 2, insa 3*3 > 2*2*2, deci produsul maxim este 9.
Problema nu este foarte grea, insa este draguta si pune o tzara mintea la contributie 😀
Si pana la urma cum ai facut-o? 🙂 Intreb pentru ca sunt curios sa vad cum te-ai gandit tu …
#include
typedef int Huge[5000];
Huge m;
void Mult(Huge H,int x)
{int i,e,t=0;
for(i=1; i>p;
c=p/3; r=p%3;
m[0]=1; m[1]=1;
for(i=1; i0; i–) g<<m[i];
g<<'n'; g.close(); f.close(); return 0;
}
Aceasta e rezolvarea . Problema seamana cu problema impozit de pe campion.edu.ro