题意:
输入一组数据,求最大不连续降序数值个数。
输入:
每组数据以-1结束,连续两个-1则程序结束。
输出:
输出测试数据组数及求出的最大值。
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string>
#include <iostream>
using namespace std;
int arr[10000], d[10000];
int main(){
#ifdef LOCAL
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
#endif
int count = 0, c, i, j, ncase = 1;
while(scanf("%d", arr+count) && arr[count] != -1){
count++;
while(scanf("%d", arr+count) && arr[count] != -1){
count++;
}
d[0] = arr[0];
c = 1;
for(i = 1; i < count; i++){
for(j = c - 1; j>=0; j--){
if(arr[i] <= d[j]){
break;
}
}
d[j+1] = arr[i];
if(j == c -1) c++;
}
printf("Test #%d:\n maximum possible interceptions: %d\n\n", ncase++, c);
count = 0;
}
return 0;
}