SRM366 - typo 2 連発
2007-09-18
久しぶりの SRM。 SRM366 に挑戦。
ChangingSounds (code)
250 点問題。典型的 DP。
GuitarConcert (code)
500 点問題。N=10 なので、2^N の Brute-force でいけます。結果を、lexicographically で優先順位をつけるところだけが注意点です。
ですが、System Test に落ちました。えーと、ここの、
void sort(String[] a, String[] b) {
int N = a.length;
for (int i = 0; i < N; i++) {
for (int j = N-2; j >= i; j--) {
if (a[j+1].compareTo(a[i]) < 0) {
swap(a, j, j+1);
swap(b, j, j+1);
}
}
}
}
この行ですね。
if (a[j+1].compareTo(a[i]) < 0) {
i ではなく j ですよー。気付きましょうよー > 私。
if (a[j+1].compareTo(a[j]) < 0) {
これで System Test に通りました。 typo のままで、Example Case に通ってしまったのが、運のつき。
LateForConcert (code)
1000 点問題にもかかわらず特に悩むところはない珍しく簡単な問題。ですが、どうしても答えがあわない。。そのまま時間ぎれ。
やはり、一箇所ミスってました。
double[][][] next = new double[R][C][4];
fill(dp, INF);
dp ではなく next ですよー。気付きましょうよー > 私。
double[][][] next = new double[R][C][4];
fill(next, INF);
これで System Test に通りました。 typo というよりは、典型的なコピペ後の修正し忘れってやつですね。
結果
System Test の結果です. ( Room Statistics )
今回は、3 問全部解くべき簡単な問題セットだったと思うんですけど。ミス 2 連発では、お話になりません。
レーティングは、1856 > 1760 とまとも低下。やむなし。。