Pagini recente » Cod sursa (job #1512620) | Cod sursa (job #713621) | Cod sursa (job #2415776) | Cod sursa (job #407427) | Cod sursa (job #1131636)
#include <iostream>
#include <sstream>
#include <fstream>
using namespace std;
const int NMAX = 100000;
int n;
long v[NMAX];
void LIS(long v[])
{
int Size[NMAX];
string Path[NMAX];
for(int i=0; i<=n; i++)
{
Size[i] = 1;
stringstream ss;
ss<<v[i];
Path[i] = ss.str();
}
int maxLength = 0;
for(int i=1; i<=n; i++)
for(int j=0; j<=i; j++)
if(v[i]>v[j] && Size[i]<Size[j]+1)
{
Size[i] = Size[j]+1;
stringstream ss;
ss<<Path[j]<<" "<<v[i];
Path[i] = ss.str();
if(maxLength<Size[i])
maxLength = Size[i];
}
ofstream g("scmax.out");
g<<maxLength;
for(int i=0; i<=n; i++)
if(Size[i] == maxLength)
{
g<<endl<<Path[i];
break;
}
}
int main()
{
ifstream f("scmax.in");
f>>n;
for(int i=0; i<=n; i++)
f>>v[i];
LIS(v);
}