Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std ;
  4.  
  5. #define mx 1000
  6. #define pii pair<int,int>
  7.  
  8. vector<pii > v1,v2,v3,v4 ;
  9.  
  10. int n ;
  11.  
  12. int dp[mx],dir[mx];
  13. int longest(int u)
  14. {
  15. if(dp[u]!=-1) return dp[u];
  16. int maxi=0;
  17. for(int v=u+1;v<=n;v++)
  18. {
  19. if(v1[v].second>v1[u].second and v1[v].second>v1[u].second)
  20. {
  21. if(longest(v)>maxi)
  22. {
  23. maxi=longest(v);
  24. dir[u]=v;
  25.  
  26. }
  27. }
  28. }
  29. dp[u]=1+maxi;
  30. return dp[u];
  31. }
  32.  
  33.  
  34.  
  35. int main()
  36. {
  37.  
  38. cin>>n;
  39.  
  40. v1.push_back(pii(-10000,-10000));
  41. v3.push_back(pii(-10000,-10000));
  42. for(int i=1 ; i<=n ;i++)
  43. {
  44. int x,y; cin>>x>>y ;
  45.  
  46. v1.push_back(pii(x,y));
  47.  
  48. }
  49.  
  50. sort(v1.begin(),v1.end());
  51. //for(int i = 1 ; i<=n ; i++)cout<<v1[i].first<<" "<<v1[i].second<<endl;
  52.  
  53.  
  54.  
  55.  
  56.  
  57. memset(dp,-1,sizeof dp);
  58. memset(dir,-1,sizeof dir);
  59. int LIS=0,start;
  60. for(int i=1;i<=n;i++)
  61. {
  62. printf("",longest(i));
  63. if(longest(i)>LIS)
  64. {
  65. LIS=longest(i);
  66. start=i;
  67. }
  68. }
  69. cout<<LIS<<endl;
  70.  
  71.  
  72. return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement