hdu2817

来源:互联网 发布:淘宝退款和售后规则 编辑:程序博客网 时间:2024/06/17 15:07
/*
分析:
    敲错一个符号WA一次,撞墙去算了。。。
    算是二分吧,对于等比数列的情况而言。不啰嗦了,
吃饭去了。。。囧~


                                                    2013-02-26
*/








#include"stdio.h"#include"string.h"#include"stdlib.h"#define e 200907__int64 a,b,c,k;void solve1(){__int64 dir,ans;dir=(c-b)%e;k=(k-1)%e;a%=e;ans=(a+k*dir)%e;printf("%I64d\n",ans);}void solve2(){if(k==1)printf("%I64d\n",a%e);__int64 q,ans;q=(c/b)%e;a%=e;k--;__int64 t,tt,temp;t=k;tt=2;temp=q;ans=a;while(0<t){while(tt<t){temp=(temp*temp)%e;tt*=2;}ans=(ans*temp)%e;t-=tt/2;tt=2;temp=q;}printf("%I64d\n",ans);}int main(){int T;scanf("%d",&T);while(T--){scanf("%I64d%I64d%I64d%I64d",&a,&b,&c,&k);if(c-b==b-a)solve1();elsesolve2();}return 0;}