Advertisement
a53

up

a53
Aug 29th, 2020
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3. int n,i,v[100001],c[100001],a[100001],t,st,dr,poz,mij,b[10001],k;
  4.  
  5. int main()
  6. {
  7. ifstream f("up.in");
  8. ofstream g("up.out");
  9. f>>n;
  10. for(i=1;i<=n;++i)
  11. {
  12. f>>v[i];
  13. }
  14. a[1]=v[1];
  15. t=1;
  16. c[1]=1;
  17. for(i=2;i<=n;++i)
  18. {
  19. ///plasez elementul v[i] in a astfel incat sirul a este crescator
  20. if(v[i]>a[t]) {a[++t]=v[i];
  21. c[i]=t;}
  22. else {
  23. ///caut binar pozitia
  24. st=1;
  25. dr=t;
  26. poz=0;
  27. while (st<=dr)
  28. {
  29. mij=(st+dr)/2;
  30. if(a[mij]>=v[i])
  31. poz=mij,dr=mij-1;
  32. else
  33. st=mij+1;
  34. }
  35. a[poz]=v[i];
  36. c[i]=poz;
  37. }
  38. }
  39. g<<t<<'\n';
  40. return 0;
  41. }
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement