Pagini recente » Cod sursa (job #2530348) | Cod sursa (job #2469092) | Cod sursa (job #1797904) | Cod sursa (job #313563) | Cod sursa (job #2643004)
#include <iostream>
#include <fstream>
#include <algorithm>
#define Nmax 100005
//#define Nmax_Fr 2000000005
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
long long Dp[Nmax];
int k;
int Fr[Nmax];
int main()
{
ios::sync_with_stdio(0);
fin.tie(0);
fout.tie(0);
int n;
fin >> n;
int x;
fin >> x;
Dp[++ k] = x;
Fr[x] = 1;
n --;
while(n)
{
int y;
fin >> y;
if(y > Dp[k] && Fr[y] == 0)
{
Dp[++ k] = y;
n --;
continue;
}
else if(y < Dp[k] && Fr[y] == 0)
{
int upper = upper_bound(Dp + 1, Dp + k + 1, y) - Dp;
Dp[upper] = y;
Fr[y] = 1;
n --;
continue;
}
else if (Fr[y] == 1)
{
n --;
continue;
}
n --;
}
fout << k << "\n";
for(int i = 1; i <= k; i ++)
fout << Dp[i] << " ";
return 0;
}