UVa 11718 - Fantasy of a Summation Solution

#include <iostream>
using namespace std;
long long int n,k,mod;
long long int pw(long long int x,long long int p){
    long long int ans=1;
    while(p){
        if(p&1ll)
            ans*=x;
        x*=x,p>>=1;
        x%=mod;
        ans%=mod;
    }
    return ans;
}
int main(){
    ios::sync_with_stdio(0);
    long long int t,i=0;
    cin>>t;
    while(t--){
        cin>>n>>k>>mod;
        long long int sum=0,tmp;
        for(int i=0;i<n;i++){
            cin>>tmp;
            sum+=tmp;
            sum%=mod;
        }
        cout<<"Case "<<++i<<':'<<' '<<(sum*k*pw(n,k-1))%mod<<endl;
    }
}

Comments