Może funkcja “licz” nie jest zbyt piękna, ale szukając błędu trochę przekombinowałem i nie mogę znaleźć, co jest nie tak. Czy ktoś pomoże?? Może chociaż jakiś ekstremalny test, na którym się wywala??
#include <iostream>
using namespace std;
int mod=1010101011;
unsigned long long int licz(unsigned long long int b)
{unsigned long long p1,p2;
if (b%2==0) {p1=(b/2)*(b/2);
p2=b+1;
return ((((p1%mod)*p2)%mod)*p2)%mod;}
else
{p1=((b+1)/2)*((b+1)/2);
p2=b;
return ((((p1%mod)*p2)%mod)*p2)%mod;}
}
int main()
{
unsigned long long a,b;
unsigned long long n,p;
while(cin>>a>>b)
{
n=licz(b);
b=a-1;
if (b<2) p=b;
else
p=licz(b);
cout<<n-p<<endl;
}
return 0;
}
//1^3+2^3+3^3+… +n^3= n^2(n+1)^2/4