Cod sursa(job #764394)

Utilizator kakkarotFaur Catalin kakkarot Data 5 iulie 2012 04:54:27
Problema Subsir crescator maximal Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <fstream>
#include <cstring>

using namespace std;

int main(void)
{
   ifstream cin("scmax.in");
   ofstream cout("scmax.out");
   
   int n;
   cin >> n;
   int sir[100000];
   int vect[100000];
   int i;
   for(i=0;i<n;i++)
      cin >> sir[i];
   memset(vect,0,sizeof(vect));
   
   vect[n-1]=1;
   int sirMax=1;
   int j;
   for(i = n-2;i>=0;i--)
   {
      if(sir[i]<sir[i+1])
      {
         j=i+1;
         while(sirMax!=vect[j]&&j<n)
           j++;                    
         vect[i]=vect[j]+1;
         sirMax = vect[i];                   
      }      
      else
      {
         j=i+1;
         while(sir[i]>=sir[j]&&j<n)
           j++;
         vect[i]=vect[j]+1;  
      }
   }   
   
   for(i=0;i<n;i++)
     cout << vect[i] << " " ;
   cout << endl;
   cout << sirMax << endl;
   i = 0;
   while(sirMax)
   {
       while(vect[i]!=sirMax&&i<n)
         i++;
       cout << sir[i] << " ";
       sirMax--;    
   }
   
   cout.close();
   cin.close();
   return 0;   
}