1. JAVA, Simon Baumgartner

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;

/*
* ACM Programming Contest
* Problem: 231 Testing the CATCHER
* Status: Wrong Answer
* Runtime: 0.088
* Date: 2009-05-31
* Author: Simon Baumgartner
*
*/

public class Main {

public static void main(String[] args) throws NumberFormatException, IOException {
// BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
BufferedReader in = new BufferedReader(new FileReader("input.txt"));
int x = -1;
int count = 0;
while(true){
count++;
ArrayList<Integer> a = new ArrayList<Integer>();

while((x = Integer.parseInt(in.readLine())) != -1){
a.add(x);
}

if(a.size() == 0)
break;

int[] v = new int[a.size()];
Arrays.fill(v, 1);
int max = 1;

for(int i = 0; i < a.size(); i++){
for(int j = 0; j < i; j++){
if(a.get(j) >= a.get(i) && v[j] + 1 > v[i]){
v[i] = v[j] + 1;
if(v[i] > max)
max = v[i];
}
}
}
System.out.println("Test #" + count + ":");
System.out.println("\tmaximum possible interceptions: " + max);
System.out.println();
}
System.out.println();
}

}

2. C, Axel Fiedler

/* WA */

#include <stdio.h>
#include <string.h>

#define NUMBER 10000

int missile[NUMBER];
int length[NUMBER];

int main()
{
int i, j, n, max, counter = 0;

while (1)
{
memset(missile, 0, sizeof(missile));
memset(length, 0, sizeof(length));

counter++;
n = max = 0;

scanf("%d", &missile[n]);
if (missile[n] < 0)
break;

n++;

while (scanf("%d", &missile[n]) && (missile[n] >= 0))
n++;

for (i = 0; i <= (n - 1); i++)
{
for (j = i + 1; j <= n; j++)
{
if (missile[j] <= missile[i])
{
if ((length[i] + 1) > length[j])
{
length[j] = length[i] + 1;

if (length[j] > max)
max = length[j];
}
}
}
}

printf("Test #%d:\n", counter);
printf(" maximum possible interceptions: %d\n\n", max);
}

return 0;
}