結果

問題 No.3110 Like CPCTF?
ユーザー mutv625
提出日時 2025-04-19 14:17:15
言語 C#
(.NET 8.0.404)
結果
RE  
実行時間 -
コード長 2,132 bytes
コンパイル時間 8,318 ms
コンパイル使用メモリ 171,236 KB
実行使用メモリ 196,164 KB
最終ジャッジ日時 2025-04-19 14:17:30
合計ジャッジ時間 12,545 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample WA * 2 RE * 1
other AC * 4 WA * 6 RE * 6
権限があれば一括ダウンロードができます
コンパイルメッセージ
  復元対象のプロジェクトを決定しています...
  /home/judge/data/code/main.csproj を復元しました (106 ミリ秒)。
/home/judge/data/code/Main.cs(54,13): warning CS8321: ローカル関数 'Combination' は宣言されていますが、一度も使用されていません [/home/judge/data/code/main.csproj]
  main -> /home/judge/data/code/bin/Release/net8.0/main.dll
  main -> /home/judge/data/code/bin/Release/net8.0/publish/

ソースコード

diff #

using System;
using System.Linq;
using System.Collections.Generic;
using System.Runtime.InteropServices;

class Program
{
    public static void Main(string[] args)
    {
        // 入力受取
        int _ = int.Parse(Console.ReadLine());
        string instr = Console.ReadLine();

        char[] alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();

        int count = 0;

        // 文字列を分割して、各部分を取得
        for (int a = 0; a < alpha.Length; a++)  // alpha[a]:A-Zまで
        {
            string[] s = instr.Split(alpha[a]);

            if (s.Length <= 2)
            {
                continue;
            }
            Console.WriteLine($"Sep: {alpha[a]} > {s.Length} : {string.Join(",", s)}");

            for (int i = 1; i < s.Length; i++)
            {
                for (int j = i + 1; j < s.Length; j++)
                {
                    for (int p = 0; p < s[i].Length; p++)
                    {
                        char[] s_j = s[j].Where(c => c != s[i][p]).ToArray();
                        Console.WriteLine($"Tst: s[{i}] = {s[i]}, s[{j}] = {s[j]}");
                        Console.WriteLine($"Del_1: {s[i][p]} > {string.Join(",", s_j)}");

                        for (int q = 0; q < s_j.Length; q++)
                        {
                            char[] s_k = s_j.Where(c => c != s_j[q]).ToArray();
                            Console.WriteLine($"Del_2: {s_j[q]} > {string.Join(",", s_k[q..])}");
                            
                            Console.WriteLine($"Cnt: +{s_k[q..].Length}");
                            count += s_k[q..].Length;
                        }
                    }
                }
            }
        }

        Console.WriteLine(count);

        int Combination(int n, int r)
    {
        if (n < r) return 0;
        if (n == r) return 1;
        if (r == 0) return 1;

        int num = 1;
        for (int i = n; i > n - r; i--)
        {
            num *= i;
        }

        int den = 1;
        for (int i = r; i > 0; i--)
        {
            den *= i;
        }

        return num / den;
    }
    }
}
0