Cod sursa(job #543816)

Utilizator Rares95Rares Arnautu Rares95 Data 28 februarie 2011 17:16:22
Problema Subsir crescator maximal Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
# include <stdio.h>
  using namespace std;
    int deque [5000001], a[500001];
		
		int main () {
			int n, i, front = 1, back = 0;
			
			freopen ("scmax.in", "r", stdin);
			freopen ("scmax.out", "wt", stdout);
			
			scanf ("%d", &n);
			for (i = 1; i <= n; ++i)
				scanf ("%d", &a[i]);
			
			for (i = 1; i <= n; ++i) {
				while (front <= back && a[i] <= a [ deque [ back ] ]) -- back;
				deque [ ++ back ] = i;
			}
			
			printf ("%d\n", back);
			for (i = front; i <= back; ++i)
				printf ("%d ", a [ deque [ i ] ]);
			printf ("\n");
			
			return 0;
		}