kot_mapku3

[ICPC] Первый и второй максимумы

Mar 6th, 2020
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.60 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5. using ll = long long;
  6.  
  7. int n; ll a,b,cur;
  8. ll mod = 1791791791;
  9. ll im1 = 0;
  10. ll im2 = 1;
  11.  
  12. int main() {
  13.  
  14.   cin >> n;
  15.   cin >> cur >> a >> b;
  16.   vector<ll> nums(n);
  17.    
  18.   nums[0] = (cur * a + b) % mod;
  19.   for (ll i = 1; i < n; ++i) {
  20.     nums[i] = (nums[i-1] * a + b) % mod;
  21.   }
  22.  
  23.   if (nums[im1] < nums[im2]) swap(im1, im2);
  24.  
  25.   for (ll i = 2; i < n; ++i) {
  26.     if (nums[im1] < nums[i]) {
  27.       im2 = im1;
  28.       im1 = i;
  29.     }
  30.     else if (nums[im2] < nums[i]) im2 = i;
  31.   }
  32.  
  33.   cout << im1 + 1 << " " << im2 + 1;
  34.  
  35.   return 0;
  36. }
Add Comment
Please, Sign In to add comment