#include <vector> #include <list> #include <map> #include <set> #include <deque> #include <queue> #include <stack> #include <bitset> #include <algorithm> #include <functional> #include <numeric> #include <utility> #include <sstream> #include <iostream> #include <iomanip> #include <cstdio> #include <cmath> #include <cstdlib> #include <cctype> #include <string> #include <cstring> #include <cstdio> #include <cmath> #include <cstdlib> #include <ctime> using namespace std; typedef Long long LL; #define The CLR(x, y) memset ((×), (y),sizeof((x))) #define for (x, Y, z) for ( int.) = (y);(x) < (*); + + (x)) #define FORD( x, Y, z) for(int.) = (y);(x) >= (z);--(x)) #define FOR2( x , Y, z) int. For((x) = (y);(x) < (z); + + (x)) #define FORD2( x , Y, z) int. For((x) = (y);(x) >= (z);--(x))
const int maxn = 10000; int DP[MAXN],A[MAXN]; int Main () { //freopen ("In.txt", "R", stdin); //freopen ("OUT.txt", "w", stdout); int cntcase = 0; while (~scanf ("%d", a) && ~a[0]) { int n = 1; CLR(dp,0); while (~scanf ("%d", A + N) && ~a[n]) ++n; CLR(dp,0);For (i,0,n) {Dp[i] = 1;For (j,0,i) { if(A[i] <= a[j]) {Dp[i] = max (Dp[i],dp[j] + 1); } } } int ans = 0;For (i,0,n) {ans = max (Dp[i], ans); }printf ("Test #%d:\n maximum possible interceptions:%d\n\n", ++cntcase,ans); } return 0;} |