比赛 20121016 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 数列求值 最终得分 100
用户昵称 王者自由 运行时间 0.006 s
代码语言 C++ 内存使用 1.96 MiB
提交时间 2012-10-16 19:19:34
显示代码纯文本
#include <cstdio>
const int N = 7 * 7 + 10;
int a, b, n, z;
int f[N] = {0, 1, 1};
int main() {
    freopen("sequenceb.in", "r", stdin);
    freopen("sequenceb.out", "w", stdout);
    scanf("%d %d %d", &a, &b, &n);
    for(int i=3; i<N; i++) {
        f[i] = (a * f[i-1] + b * f[i-2]) % 7;
        //fprintf(stderr, "%d ", f[i]);
        if(i > 5 && f[i-1] == f[3] && f[i] == f[4]) {
            z = i - 4;
            break;
        }
    }
    //fprintf(stderr, "\n%d\n", z);
    printf("%d\n", n > 2 ? f[(n - 3) % z + 3] : 1);
    return 0;
}