G.cpp 955 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main() {
  4. for (int a, b, n; cin >> a >> b >> n;) {
  5. if (a == 0 && b == 0 && n == 0)break;
  6. a %= 7, b %= 7;
  7. int v[200] = {0, 1, 1};
  8. for (int i = 3; i < 200; i++) {
  9. v[i] = (v[i - 1] * a + v[i - 2] * b) % 7;
  10. }
  11. int left, right, period;
  12. for (int i = 1; i < 99; i++) {
  13. int x = v[i], y = v[i + 1];
  14. for (int k = i + 2; k < 99; k++) {
  15. if (v[k] == x && v[k + 1] == y) {
  16. left = i;
  17. right = k;
  18. period = right - left;
  19. break;
  20. }
  21. }
  22. }
  23. // copy(v,v+200,ostream_iterator<int>(cout,""));cout<<endl;
  24. //cout<<"left="<<left<<",period="<<period<<endl;
  25. n = n % period + period;
  26. cout << v[n] << endl;
  27. }
  28. return 0;
  29. }
  30. //
  31. // Created by Administrator on 2018-11-05.
  32. //