Cod sursa(job #1771560)
| Utilizator | Data | 5 octombrie 2016 19:26:49 | |
|---|---|---|---|
| Problema | Subsir 2 | Scor | 45 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.61 kb |
#include <iostream>
#include <fstream>
using namespace std;
#define nmax 5100
ifstream fin("subsir2.in");
ofstream fout("subsir2.out");
int v[nmax];
int q[nmax];
int n,i,s,d,p,l,m;
int main()
{
fin>>n;
for(i=1; i<=n; ++i)
{
fin>>v[i];
s=1;
d=l;
p=0;
while(s<=d)
{
m=(s+d)/2;
if(v[i]>=v[q[m]])
s=m+1,p=m;
else
d=m-1;
}
if(p+1>l)
++l;
q[p+1]=i;
}
fout<<l<<'\n';
for(i=1; i<=l; ++i)
fout<<q[i]<<' ';
}
