Advertisement
stetsyk

Untitled

Dec 20th, 2014
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.58 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <vector>
  3. #include <string>
  4. #include <iostream>
  5. #include <algorithm>
  6. #include <cmath>
  7. #include <cstdio>
  8. #include <cstdlib>
  9. #include <fstream>
  10. #include <map>
  11. #include <set>
  12. #include <queue>
  13. #include <memory.h>
  14. #include <time.h>
  15. #include <iostream>
  16. #include <string>
  17. #include <cstring>
  18. #include <vector>
  19. #include <cmath>
  20. #include <map>
  21. #include <algorithm>
  22. #include <cstdio>
  23. #include <set>
  24. #include <queue>
  25. #include <cassert>
  26. #include <climits>
  27. #define sz(x) int((x).size())
  28. #define FOR(i,a,b) for(ll(i) = (a); (i) <= (b); ++(i))
  29. #define ROF(i,a,b) for(ll(i) = (a); (i) >= (b); --(i))
  30. #define rep(i,n) for (int(i) = 0; (i) < (n); ++(i))
  31. #define fe(i,a) for (ll(i) = 0; (i) < int((a).size()); ++(i))
  32. #define C(a) memset((a),0,sizeof(a))
  33. #define pb push_back
  34. #define ppb pop_back
  35. #define all(c) (c).begin(), (c).end()
  36. #define sqr(a) (a)*(a)
  37. #define mp(a,b) make_pair((a), (b))
  38. #define X first
  39. #define Y second
  40. #define file freopen("input.txt","r",stdin)
  41. #define file2 freopen("output.txt", "w",stdout)
  42. #define text freopen("input.txt","r",stdin); freopen("output.txt", "w",stdout)
  43. using namespace std;
  44. typedef vector<int> vint;
  45. typedef long long ll;
  46. typedef unsigned long long ull;
  47. typedef pair<int, int> pii;
  48. #include <iostream>
  49. #include <cstdio>
  50. #include <cstdlib>
  51. #include <cmath>
  52. #include <cstring>
  53. #include <string>
  54. #include <vector>
  55. #include <climits>
  56. #include <cassert>
  57. #define y1 vamdlsfmvldf
  58. using namespace std;
  59. const ll mod = (ll)1e9 + 7;
  60. const ll INF = (ll)(1e17);
  61. const int N = 1000050;
  62. ll a, b, c, x0, x;
  63. int n;
  64. ll m_tmp[N];
  65. ll mn[N];
  66. int head;
  67. int head_tmp;
  68. int main(){
  69.   cin >> n;
  70.   cin >> a >> b >> c >> x0;
  71.   head = -1;
  72.   head_tmp = -1;
  73.   ll sum = 0;
  74.   ll mnt = mod;
  75.   for(int i = 0; i < n; ++i){
  76.       x = ((a * x0 + b) * x0 + c) / 100;
  77.       x %= 1000000;
  78.       x0 = x;
  79.       //cout << x  << " " << x % 5 << endl;
  80.       if(x % 5 < 2){
  81.           if(head >= 0) --head;
  82.           else{
  83.               while(head_tmp >= 0){
  84.                   mn[++head] = m_tmp[head_tmp--];
  85.                   if(head >= 1) mn[head] = min(mn[head], mn[head - 1]);
  86.               }
  87.               head--;
  88.               head = max(head, -1);
  89.               mnt = mod;
  90.           }
  91.       }
  92.       else{
  93.           m_tmp[++head_tmp] = x;
  94.           mnt = min(mnt, m_tmp[head_tmp]);
  95.       }
  96.       if(head >= 0)
  97.           sum += min(mn[head], mnt);
  98.      else if(head_tmp >= 0)
  99.           sum += mnt;
  100.       //cout << head << " " << head_tmp << endl;
  101.       //cout << sum << endl;
  102.   }
  103.   cout << sum << endl;
  104.   return 0;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement