Pagini recente » Cod sursa (job #1820820) | Cod sursa (job #1220723) | Cod sursa (job #2727933) | Statistici Stefan Zota (Stefan_Zota) | Cod sursa (job #1825803)
#include<fstream>
using namespace std;
ifstream fin ("scmax.in");
ofstream fout ("scmax.out");
pair<int,int> p[100105];
int v[100105], k[100105], i , n, j,poz, rasp[100105];
int main()
{
fin>>n;
for ( i = 1 ; i <= n ; i++ )
fin>>v[i];
for ( i = 1 ; i <= n+2 ; i++ )
p[i].first=2000000009;
for ( i = 1 ; i <= n ; i++ )
for ( j = 1 ; j <= n ; j++ )
if( v[i] <= p[j].first )
{
p[j].first = v[i];
p[j].second=i;
k[i]=p[j-1].second;
break;
}
n=1;
while( p[n].first != 2000000009 )
n++;
fout<<n-1<<"\n";
poz = p[ n-1 ].second;
j=0;
for( i = 1 ; poz != 0 ; poz=k[poz] )
rasp[j]=v[poz], j++;
for(i=j-1; i>=0;i--)
fout<<rasp[i]<<" ";
fin.close();
fout.close();
return 0;
}