void suma(int A[], int &n, int x)
{
/// aduna pe x la A
/// cazul cu zero
if(x == 0)
return;
/// aduna cifra cu cifra
int t = 0; /// transportul (carry din engleza)
for(int i = 1; i <= n; i++)
{
long long c = 1LL*A[i]+x%10+t; /// calculeaza cifra
A[i] = c%10; /// memoreaza unitatile
t = c/10; /// pune in transport restul
x /= 10;
}
/// pune ultimele cifre ale transportului
while(t>0)
{
A[++n] = t%10;
t /= 10;
}
}