AtCoder Grand Contest 052

コンテスト前のレート:2029
レート通りのパフォーマンスが得られる順位:315位(400点、23分10秒)

A - Long Common Subsequence

問題
思いつき一発大当たり。

思考過程
  1. とりあえず、"00001111"のように'0'と'1'をN個ずつ繋げた文字列は明らかに条件を満たす。
  2. さらに最後に'0'をもう1つ付け足してみたらどうか?
  3. 条件を満たさない入力がすぐに思い付かないので、とりあえず提出してみたら通った。
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int t = Integer.parseInt(br.readLine());
        PrintWriter pw = new PrintWriter(System.out);
        for (int z = 0; z < t; z++) {
            int n = Integer.parseInt(br.readLine());
            char[] s1 = br.readLine().toCharArray();
            char[] s2 = br.readLine().toCharArray();
            char[] s3 = br.readLine().toCharArray();

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < n; i++) {
                sb.append('0');
            }
            for (int i = 0; i < n; i++) {
                sb.append('1');
            }
            sb.append('0');
            pw.println(sb.toString());
        }
        pw.flush();
        br.close();
    }
}

ここまで5分33秒+0ペナ。9位。



あとはB問題を1時間くらい、C問題を30分くらい、D問題を10分くらい考えたが、どれも解ける気がせず、順位表を眺めていてそんなに悪い結果になりそうでもなかったので、1時間近くの時間を残して撤退。
黄色になった色変記事の続きを書いていました。(月曜日中に公開する予定)


なお、B問題は解説をチラッと見たところ、全くかすってもいなそう。
とりあえず1ビットで考えていて、ウニでなければだいたいどうにでもできそうな気がするとか、それを全ビットで成立させられるか調べるなら掃き出し法かなとか考えていたりした。


C問題は、全要素の和がPの倍数だと良い数列ではなくて、他に良い数列ではないのは、
和がP2Pの間だと全部1の場合だけ、
和が2P3Pの間だと全部1の場合と全部2の場合?、
和が3P4Pの間だと全部1の場合と全部2の場合と全部3の場合?
 ・・・
のようになっているような気がしたりしていたが、仮に合っていたとしても簡単に数え上げられそうな気はせず諦め。
解説見る限りやっぱり違ってた。



終結果:Aの1完、5分33秒、178位、パフォーマンス2351
レート変動:2029→2065(+36)


2時間半椅子を温めただけでこんなにレートが上がっていいんだろうか・・・。
問題間のDifficultyの差が1000を超えるくらいになると、早解き勝負になり過ぎてしまう気がするけど、過去のAGCを見ると、灰or茶→黄とか、青→赤とかないこともないので、結局崖の手前までをしっかりレート相応の時間内に解けることが、失敗しないためのポイントになるんだろうなという感じ。

ともあれ、昨日のABC194レベルの大失敗(約1140以下)をしなければ一発青落ちはないというところまで来た。
Ratedがもっと全然ないかと思ったら、来週も再来週もARCがあるらしい。