Cod sursa(job #2919824)

Utilizator AlexandruBenescuAlexandru Benescu AlexandruBenescu Data 19 august 2022 22:33:48
Problema Subsir crescator maximal Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>
#define L 100005
using namespace std;
ifstream fin("scmax.in");
ofstream fout("scmax.out");
vector <int> ans;
int v[L], seq[L];
int main(){
  int n, i, pos;
  fin >> n;
  for (i = 0; i < n; i++)
    fin >> v[i];
	for (i = 0; i < n; i++){
		auto it = lower_bound(ans.begin(), ans.end(), v[i]);
		if (it == ans.end()){
			pos = ans.size();
			ans.push_back(v[i]);
		}
		else{
			*it = v[i];
			pos = it - ans.begin();
		}
    if (!seq[pos])
      seq[pos] = v[i];
	}
	fout << ans.size() << "\n";
	for (i = 0; i < (int)ans.size(); i++)
    fout << ans[i] << " ";
  fout << "\n";
	return 0;
}