Guest User

Untitled

a guest
Jun 21st, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. //*********Paulina Los*******//
  2. #include<iostream>
  3. using namespace std;
  4.  
  5. int* we;
  6. int* wy;
  7. int* pozycja;
  8. int* poprzednik;
  9. int n;
  10.  
  11. void czytaj(int);
  12. void czytajPop();
  13.  
  14. int main(){
  15.  
  16. cin>>n;
  17.  
  18. we=new int[n];
  19. pozycja=new int[n];
  20. poprzednik=new int[n];
  21.  
  22. //inicjacja
  23. for(int i=0;i<n;i++){
  24. pozycja[i]=0;
  25. poprzednik[i]=0;
  26. cin>>we[i];
  27. }
  28. int max1=0;
  29. for(int i=n-1;i>=0;i--){
  30. for(int ii=i+1;ii<n;ii++){
  31. if(we[i]<we[ii]){
  32. if(pozycja[i]-1<pozycja[ii]){
  33. pozycja[i]=pozycja[ii]+1;
  34. poprzednik[i]=ii;
  35. if(pozycja[i]>=max1){
  36. max1 = pozycja[i];
  37. break;
  38. }
  39. }
  40. }
  41. }
  42. }
  43. //szukam maksymalna pozycji o minimalnym indeksie
  44. int max=0;
  45. int pozycjaMax=0;
  46. for(int i=0;i<n;i++){
  47. if(pozycja[i]>max){
  48. pozycjaMax =i;
  49. max = pozycja[pozycjaMax];
  50. }
  51. }
  52.  
  53.  
  54. wy = new int[max+1];
  55. wy[0] = pozycjaMax;
  56.  
  57. //szukam najlepszego ciagu
  58. int pop=poprzednik[pozycjaMax];
  59.  
  60. for(int i=1;i<=max; i++){
  61. wy[i]=pop;
  62. pop=poprzednik[pop];
  63. }
  64. for(int i=0;i<=max;i++) cout<<wy[i]<<endl;
  65.  
  66. delete[] poprzednik;
  67. delete[] pozycja;
  68. delete[] we;
  69. delete[] wy;
  70.  
  71. return 0;
  72. }
Add Comment
Please, Sign In to add comment