Cod sursa(job #175918)
| Utilizator | Data | 10 aprilie 2008 16:35:29 | |
|---|---|---|---|
| Problema | Subsir crescator maximal | Scor | 25 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include<fstream.h>
#define Nmax 1600
ifstream fin("scmax.in");
ofstream fout("scmax.out");
int a[Nmax],b[Nmax],na,nb;
int poz;
void cautbin(int val)
{
int st=1,end=nb,mij;poz=-1;
while(st<=end)
{
mij=(st+end)/2;
if(b[mij]>=val)
{
poz=mij;
end=mij-1;
}
else st=mij+1;
}
}
int main()
{
int i;
fin>>na;
for(i=1;i<=na;i++)
{
fin>>a[i];
cautbin(a[i]);
if(poz==-1)
{
// if(nb==130) {cout<<"Heeeeei..\n";
// cin>>poz;}
b[++nb]=a[i];
}
else
b[poz]=a[i];
}
fout<<nb<<'\n';
return 0;
}
