Total Submission(s): 2395 Accepted Submission(s): 1355
2 3 2 2 1 1 3 4 3 0 3 1 5 2 0
Case #1: 2.00 Case #2: 5.00HintIn the first sample, Ted moves from 2 to 4 in 1 time unit. The speed 2/1 is maximal. In the second sample, Ted moves from 5 to 0 in 1 time unit. The speed 5/1 is maximal.
import java.util.*;
import java.text.*;
import java.io.*;
public class Main{
public static int T;
public static int n;
static class myScanner {
BufferedReader br;
StringTokenizer st;
public myScanner(InputStream in) {
br = new BufferedReader(new InputStreamReader(in));
st = new StringTokenizer("");
}
public String nextLine() {
try {
return br.readLine();
} catch(IOException e) {
return null;
}
}
public boolean hasNext() {
while (!st.hasMoreTokens()) {
String s = nextLine();
if (s == null) {
return false;
}
st = new StringTokenizer(s);
}
return true;
}
public String next() {
hasNext();
return st.nextToken();
}
public int nextInt() {
return Integer.parseInt(next());
}
public double nextDouble() {
return Double.parseDouble(next());
}
}
static class Data {
double t, x;
}
public static void main(String[] agrs) {
myScanner in = new myScanner(System.in);
PrintWriter pw = new PrintWriter(System.out);
T = in.nextInt();
for (int ca = 1; ca <= T; ca ++) {
System.out.print("Case #" + ca + ": ");
n = in.nextInt();
Data[] d = new Data[n];
for (int i = 0; i < n; i ++) {
d[i] = new Data();
d[i].t = in.nextDouble();
d[i].x = in.nextDouble();
}
Comparator <Data> cmp = new Comparator<Data>() {
public int compare(Data a, Data b) {
if (a.t > b.t) {
return 1;
} else if (a.t < b.t) {
return -1;
} else {
if (a.x > b.x) {
return 1;
} else if (a.x < b.x) {
return -1;
} else {
return 0;
}
}
}
};
Arrays.sort(d, cmp);
double ma = 0;
for (int i = 1; i < n; i ++) {
ma = Math.max(ma, Math.abs(d[i].x - d[i - 1].x) / (d[i].t - d[i - 1].t));
}
pw.println(new DecimalFormat("0.00").format(ma));
pw.flush();
}
pw.close();
}
}