Pagini recente » Cod sursa (job #1978905) | Cod sursa (job #927829) | Cod sursa (job #1075695) | Istoria paginii runda/baraj_oni_2007/clasament | Cod sursa (job #447694)
Cod sursa(job #447694)
#include<fstream>
#include<limits>
using namespace std;
const int SIZE = 100000;
void read();
void write();
void doit();
int n, a[SIZE], b[SIZE];
int mx = INT_MIN;
int main()
{
read();
doit();
write();
return 0;
}
void read()
{
ifstream fin( "scmax.in" );
fin >> n;
for ( int i = 0; i < n; ++i )
fin >> a[i];
fin.close();
}
void write()
{
ofstream fout( "scmax.out" );
fout << mx;
fout.close();
}
void doit()
{
int i, k = 0;
b[0] = a[0];
for ( i = 1; i < n; ++i )
if ( a[i] > b[k] )
b[++k] = i;
else
{
int p1 = 0, p2 = k;
while ( p1 <= p2 )
{
int mid = ( p1 + p2 ) >> 1;
if ( b[mid] > a[i] )
p2 = mid - 1;
else
p1 = mid + 1;
}
b[p1] = a[i];
}
mx = k;
}