Advertisement
DASBD72

Untitled

May 18th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <vector>
  4. #include <algorithm>
  5. #include <cmath>
  6. #include <cstring>
  7. using namespace std;
  8. int main() {
  9.     int T, N, M;
  10.     cin >> T;while(T--){
  11.         int a[100005], length = 0, flag = 0;
  12.         vector<int> vec;
  13.        
  14.         cin >> N >> M;
  15.         int i;
  16.         for(i = 1;i <= N;i++) cin >> a[i];
  17.         for(i = 1;i <= N;i++){
  18.             if(a[i]>=M) {
  19.                 vec.push_back(a[i]);
  20.                 break;
  21.             }
  22.             else if(a[i]*2>=M) {
  23.                 vec.push_back(a[i]*2);
  24.                 break;
  25.             }
  26.             if(i==N)flag = 1;
  27.         }
  28.         if(flag){
  29.             cout << 0 << endl;
  30.             continue;
  31.         }
  32.         i++;
  33.         for(;i <= N;i++){
  34.             if(a[i]>=M&&a[i]>=vec.back())vec.push_back(a[i]);
  35.             else {
  36.                 if(a[i]*2>=M){
  37.                     if(a[i]*2>=vec.back())vec.push_back(a[i]*2);
  38.                     else *lower_bound(vec.begin(),vec.end(),a[i]*2) = a[i]*2;
  39.                 }
  40.                 *lower_bound(vec.begin(),vec.end(),a[i]) = a[i];
  41.             }
  42.         }
  43.         for(int j = 0;j< vec.size();j++)cout<<vec[j]<<' '<<endl;
  44.         cout << vec.size() << endl;
  45.     }
  46.     return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement