//Probelm link>>http://lightoj.com/volume_showproblem.php?problem=1328
#include <bits/stdc++.h>
#define ll long long int
#define mod 1000007
using namespace std ;
long long GetDiffSum(long long int a[], int n )
{
long long int sum=0 ,ans=0 ;
int i, j;
for (i=0 ; i<n ; i++) sum=sum+a[i] ;
j=n-1 ;
for (i=0 ; i<n ; i++)
{
sum=sum-a[i] ;
ans=ans+ abs( (a[i]*j )-sum) ;
j-- ;
}
return ans ;
}
int main ()
{
ll k , c , n , t ,it=0 ,i , x , a[100004];
cin>>t ;
while (it<t)
{
it++ ;
memset(a,0,sizeof (a)) ;
cin>>k>>c>>n>>a[0] ;
for (i=1 ; i<n ; i++)
{
a[i]= ( (k*a[i-1] ) %mod + c) % mod ;
}
sort(a , a+n) ;
x= GetDiffSum ( a , n ) ;
cout<<"Case "<<it<<": "<<x<<endl ;
}
return 0 ;
}
#include <bits/stdc++.h>
#define ll long long int
#define mod 1000007
using namespace std ;
long long GetDiffSum(long long int a[], int n )
{
long long int sum=0 ,ans=0 ;
int i, j;
for (i=0 ; i<n ; i++) sum=sum+a[i] ;
j=n-1 ;
for (i=0 ; i<n ; i++)
{
sum=sum-a[i] ;
ans=ans+ abs( (a[i]*j )-sum) ;
j-- ;
}
return ans ;
}
int main ()
{
ll k , c , n , t ,it=0 ,i , x , a[100004];
cin>>t ;
while (it<t)
{
it++ ;
memset(a,0,sizeof (a)) ;
cin>>k>>c>>n>>a[0] ;
for (i=1 ; i<n ; i++)
{
a[i]= ( (k*a[i-1] ) %mod + c) % mod ;
}
sort(a , a+n) ;
x= GetDiffSum ( a , n ) ;
cout<<"Case "<<it<<": "<<x<<endl ;
}
return 0 ;
}
No comments:
Post a Comment