Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //*********Paulina Los*******//
- #include<iostream>
- using namespace std;
- int* we;
- int* wy;
- int* pozycja;
- int* poprzednik;
- int n;
- void czytaj(int);
- void czytajPop();
- int main(){
- cin>>n;
- we=new int[n];
- pozycja=new int[n];
- poprzednik=new int[n];
- //inicjacja
- for(int i=0;i<n;i++){
- pozycja[i]=0;
- poprzednik[i]=0;
- cin>>we[i];
- }
- int max1=0;
- for(int i=n-1;i>=0;i--){
- for(int ii=i+1;ii<n;ii++){
- if(we[i]<we[ii]){
- if(pozycja[i]-1<pozycja[ii]){
- pozycja[i]=pozycja[ii]+1;
- poprzednik[i]=ii;
- if(pozycja[i]>=max1){
- max1 = pozycja[i];
- break;
- }
- }
- }
- }
- }
- //szukam maksymalna pozycji o minimalnym indeksie
- int max=0;
- int pozycjaMax=0;
- for(int i=0;i<n;i++){
- if(pozycja[i]>max){
- pozycjaMax =i;
- max = pozycja[pozycjaMax];
- }
- }
- wy = new int[max+1];
- wy[0] = pozycjaMax;
- //szukam najlepszego ciagu
- int pop=poprzednik[pozycjaMax];
- for(int i=1;i<=max; i++){
- wy[i]=pop;
- pop=poprzednik[pop];
- }
- for(int i=0;i<=max;i++) cout<<wy[i]<<endl;
- delete[] poprzednik;
- delete[] pozycja;
- delete[] we;
- delete[] wy;
- return 0;
- }
Add Comment
Please, Sign In to add comment