Suma prethodna tri

Da li moze pomoc zasto dobijem RTE u zadatku:
https://petlja.org/biblioteka/r/Problems/SumaPrethodnaTri
evo i koda:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a,b,c,n,niz[100000];
cin>>a>>b>>c>>n;
int res;
niz[0]=a;
niz[1]=b;
niz[2]=c;
for(int i=3;i<=n;i++)
{
niz[i]=(niz[i-3]+niz[i-2]+niz[i-1])%10;
}
res=niz[n-1];
if(n==1)
cout<<a<<endl;
else if(n==2)
cout<<b<<endl;
else if(n==3)
cout<<c<<endl;
else
cout<<res<<endl;
return 0;
}

Kad unesem:

9 9 9
999999999

Program mi izbaci izlazni kod -1, najverovatnije jer je negde overflow-ovalo nešto. Probaj da čuvaš stvari u long long int-u umesto int-u.

Edit: niz ti je takođe veličine 10^5 iako je N maksimalne veličine 10^9. Pošto ne možeš praviti nizove tolike veličine verovatno bi mogao da samo čuvaš tri poslednja broja i pri svakom novom broju ih ažuriraš.

hvala,pomoglo je stvarno

1 Like