Advertisement
Ankit_132

F

Feb 20th, 2024 (edited)
858
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4. #define mod 998244353
  5.  
  6. int32_t main()
  7. {
  8.     ios::sync_with_stdio(0);
  9.     cin.tie(0);
  10.  
  11.     int t;
  12.     cin>>t;
  13.  
  14.     while(t--)
  15.     {
  16.         int n,m;
  17.         cin>>n>>m;
  18.         int l[m];
  19.         int r[m];
  20.         for(int i=0;i<m;i++){cin>>l[i]>>r[i];l[i]--;r[i]--;}
  21.  
  22.         vector<int> opens[n+1];
  23.         vector<int> closes[n+1];
  24.  
  25.         for(int i=0;i<m;i++)
  26.         {
  27.             opens[l[i]].push_back(i);
  28.             closes[r[i]].push_back(i);
  29.         }
  30.  
  31.         set<pair<int,int>> s; //(close,i)
  32.  
  33.         int dp[n+1];
  34.         dp[n]=0;
  35.         for(int i=n-1;i>=0;i--)
  36.         {
  37.             for(auto x:closes[i]){s.insert({r[x],x});}
  38.             dp[i]=dp[i+1];
  39.             if(!s.empty())
  40.             {
  41.                 dp[i]=max(dp[i],(int)(s.size())+dp[(*(s.rbegin())).first+1]);
  42.             }
  43.  
  44.             for(auto x:opens[i]){s.erase({r[x],x});}
  45.  
  46.         }
  47.         cout<<dp[0]<<"\n";
  48.     }
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.    return 0;    
  57. }
  58.  
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement