1 solutions
-
0
C :
#include <stdio.h> #define MOD 200907 long long g(long long q, long long k) { long long sum = 1, a[1000], i = 0; while (k) { if (k % 2 != 0) a[i++] = 1; else a[i++] = 0; k /= 2; } i--; for (i; i >= 0; i--) { sum = (sum * sum) % MOD; if (a[i]) sum = (sum * q) % MOD; } return sum % MOD; } int main() { long long a, b, c, k, t, d, q; int n; scanf("%d", &n); while (n--) { scanf("%lld%lld%lld%lld", &a, &b, &c, &k); if (b - a == c - b) { d = b - a; t = ((((k - 1) % MOD) * (d % MOD)) % MOD + a % MOD) % MOD; printf("%lld\n", t); } else { q = b / a; printf("%lld\n", (a % MOD * g(q, k - 1)) % MOD); } } return 0; }C++ :
#include <stdio.h> #define MOD 200907 long long g(long long q, long long k) { long long sum = 1, a[1000], i = 0; while (k) { if (k % 2 != 0) a[i++] = 1; else a[i++] = 0; k /= 2; } i--; for (i; i >= 0; i--) { sum = (sum * sum) % MOD; if (a[i]) sum = (sum * q) % MOD; } return sum % MOD; } int main() { long long a, b, c, k, t, d, q; int n; scanf("%d", &n); while (n--) { scanf("%lld%lld%lld%lld", &a, &b, &c, &k); if (b - a == c - b) { d = b - a; t = ((((k - 1) % MOD) * (d % MOD)) % MOD + a % MOD) % MOD; printf("%lld\n", t); } else { q = b / a; printf("%lld\n", (a % MOD * g(q, k - 1)) % MOD); } } return 0; }
- 1
Information
- ID
- 19530
- Time
- 1000ms
- Memory
- 32MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By