题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2817
#include <stdio.h>
#define MOD 200907
_int64 pow_mod(_int64 a,_int64 k)
{
_int64 temp=1;
while(k)
{
if(k&1)
temp=(temp*a)%MOD;
a=(a*a)%MOD;
k>>=1;
}
return temp;
}
int main()
{
_int64 a,b,c,k,ans,q;
int test;
scanf("%d",&test);
while(test--)
{
scanf("%I64d %I64d %I64d %I64d",&a,&b,&c,&k);
if(b+b==a+c)
{
ans=(a%MOD+((k-1)%MOD*((b-a)%MOD))%MOD)%MOD;
printf("%I64d\n",ans);
}
else
{
q=b/a;
ans=(pow_mod(q,k-1)*(a%MOD))%MOD;
printf("%I64d\n",ans);
}
}
return 0;
}