Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- int n, a[1001], T[1001], i, j, L[1001];
- void printSol(int index) {
- if ( T[index] != 0 ) {
- printSol(T[index]);
- }
- printf("%d ", index);
- }
- int main() {
- freopen("sclm.in", "r", stdin);
- freopen("sclm.out", "w", stdout);
- scanf("%d", &n);
- for ( i = 1; i <= n; i++ ) {
- scanf("%d", &a[i]);
- }
- L[1] = 1;
- T[1] = 0;
- int indexSol = 1, maxLength = 1;
- for ( i = 2; i <= n; i++ ) {
- L[i] = 1;
- T[i] = 0;
- for ( j = 1; j < i; j++ ) {
- if ( a[i] >= a[j] && L[j] + 1 > L[i] ) {
- L[i] = L[j] + 1;
- T[i] = j;
- }
- }
- if ( L[i] > maxLength ) {
- maxLength = L[i];
- indexSol = i;
- }
- }
- printf("%d\n", maxLength);
- printSol(indexSol);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement