Cod sursa(job #2173133)
Utilizator | Preda Catalin Andrei ThisNiceFellow | Data | 15 martie 2018 20:52:11 |
---|---|---|---|
Problema | Subsir crescator maximal | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
using namespace std;
ifstream f("scmax.in");
ofstream g("scmax.out");
int v[100001],n,i, w[100001],m;
int completarew(int x){
int maxw=-1;
for(int j=x;j<=n;j++)
if(v[x]<v[j]&&w[j]>maxw)maxw=w[j];
if(maxw+1>m)m=maxw+1;
return maxw+1;
}
void afisare(){
int j=1;
while(m>=0){
while(w[j]!=m)j++;
g<<v[j]<<" ";
m--;
}
}
int main()
{f>>n;
for(i=1;i<=n;i++) f>>v[i];
for(i=n;i>=1;i--)
w[i]=completarew(i);
g<<m+1<<"\n";
afisare();
return 0;
}