记录编号 133092 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 数列求值 最终得分 100
用户昵称 Gravatar奶猹 是否通过 通过
代码语言 C++ 运行时间 0.006 s
提交时间 2014-10-27 07:47:40 内存使用 0.32 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cmath>
#include<climits>
#include<algorithm>
#define Mod 7
using namespace std;
typedef long long LL;

int x,a,b;
class aaaa{
	public:
		LL aa[2][2];//
		aaaa operator * (const aaaa &b)const
		{
			aaaa c;
			c.empty();
			int i,j,k;
			for(i=0;i<2;i++)
			for(j=0;j<2;j++)
			for(k=0;k<2;k++)
			{
				c.aa[i][j]+=aa[i][k]*b.aa[k][j];
				c.aa[i][j]%=Mod;
			}
			return c;
		}
		void empty(){memset(aa,0,sizeof(aa));}
		void print()
		{
			int i,j;
			for(i=0;i<2;i++)
			{
				for(j=0;j<2;j++)
				printf("%lld ",aa[i][j]);
				printf("\n");
			}
		}
};
aaaa ans,hand;

void init();
void work(int );
void outit();

int main()
{
	freopen("sequenceb.in","r",stdin);
	freopen("sequenceb.out","w",stdout);
	init();
	work(x);
	outit();
	//while(1);
	fclose(stdin);
	fclose(stdout);
	return 0;
}
void init()
{
	scanf("%d%d%d",&a,&b,&x);
	ans.aa[0][0]=1;
	ans.aa[0][1]=1;
	ans.aa[1][0]=0;
	ans.aa[1][1]=0;
	hand.aa[0][0]=a;
	hand.aa[0][1]=1;
	hand.aa[1][0]=b;
	hand.aa[1][1]=0;
}
void work(int k)
{
	k--;
	while(k)
	{
		if(k&1)
		ans=ans*hand;
		hand=hand*hand;
		k>>=1;
	}
}
void outit()
{
	printf("%lld\n",ans.aa[0][1]);
}