結果

問題 No.3685 ワロングアンサーやんけ!
コンテスト
ユーザー 鳩でもわかるC#
提出日時 2026-09-05 19:14:40
言語 C#
(.NET 10.0.400)
コンパイル:
dotnet_c
実行:
/usr/bin/dotnet_wrap
結果
AC  
実行時間 290 ms / 2,000 ms
+ 687µs
コード長 2,414 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 6,706 ms
コンパイル使用メモリ 172,356 KB
実行使用メモリ 206,788 KB
最終ジャッジ日時 2026-09-05 19:16:07
合計ジャッジ時間 11,278 ms
ジャッジサーバーID
(参考情報)
judge3_0 / judge4_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 32
権限があれば一括ダウンロードができます
コンパイルメッセージ
  復元対象のプロジェクトを決定しています...
  /home/judge/data/code/main.csproj を復元しました (89 ミリ秒)。
  main -> /home/judge/data/code/bin/Release/net10.0/main.dll
  main -> /home/judge/data/code/bin/Release/net10.0/publish/

ソースコード

diff #
raw source code

class Program
{
    static void Main()
    {
        int T = int.Parse(Console.ReadLine());

        for (int i = 0; i < T; i++)
        {
            Solve();
        }

        void Solve()
        {
            string R = Console.ReadLine();
            string S = Console.ReadLine();
            int K = int.Parse(Console.ReadLine());

            char[] res = R.ToArray();
            if (S == "Warong")
            {
                for (int i = 0; i < K; i++)
                {
                    if (res[i] == '?')
                        res[i] = 'A';
                }
                int q_cnt = 0;
                int w_cnt = 0;
                for (int i = K; i < R.Length; i++)
                {
                    if (res[i] == '?')
                        q_cnt++;
                    if (res[i] == 'W')
                        w_cnt++;
                }
                if (q_cnt == 1 && w_cnt == 0)
                {
                    for (int i = K; i < R.Length; i++)
                    {
                        if (res[i] == '?')
                            res[i] = 'W';
                    }
                }
            }
            else
            {
                // 後半がすべて A 
                // または 前半にWが含まれている

                string r1 = R.Substring(0, K);
                if (r1.All(_ => _ == 'A'))
                {
                    for (int i = K; i < R.Length; i++)
                    {
                        if (res[i] == '?')
                            res[i] = 'A';
                    }
                }

                string r2 = R.Substring(K);
                if(r2.IndexOf('W') != -1)
                {
                    int w_cnt = 0;
                    int q_cnt = 0;
                    for (int i = 0; i < K; i++)
                    {
                        if (res[i] == 'W')
                            w_cnt++;
                        if (res[i] == '?')
                            q_cnt++;
                    }
                    if (q_cnt == 1 && w_cnt == 0)
                    {
                        for (int i = 0; i < K; i++)
                        {
                            if (res[i] == '?')
                                res[i] = 'W';
                        }
                    }
                }
            }
            Console.WriteLine(new string(res));
        }
    }
}
0