結果

問題 No.3766 PQ Disjunction
コンテスト
ユーザー tobisatis
提出日時 2026-10-16 23:11:31
言語 C#
(.NET 10.0.402 + ACL)
コンパイル:
dotnet_c
実行:
/usr/bin/dotnet_wrap
結果
AC  
実行時間 88 ms / 1,000 ms
+ 622µs
コード長 634 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 8,616 ms
コンパイル使用メモリ 170,736 KB
実行使用メモリ 48,888 KB
最終ジャッジ日時 2026-10-16 23:11:54
合計ジャッジ時間 14,431 ms
ジャッジサーバーID
(参考情報)
judge4_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 34
権限があれば一括ダウンロードができます
コンパイルメッセージ
  復元対象のプロジェクトを決定しています...
  /home/judge/data/code/main.csproj を復元しました (230 ミリ秒)。
  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

#nullable enable

var z = Console.ReadLine()!.Split(' ').Select(int.Parse).ToArray();
var (n, k) = (z[0], z[1]);

var ans = Enumerable.Range(0, n).ToArray();
var s = 1;
while (s < n)
{
    if ((s & k) == 0) for (var i = 0; i < n; i++)
    {
        if ((i & s) > 0) continue;
        var j = i ^ s;
        if (j >= n) break;
        (ans[i], ans[j]) = (ans[j], ans[i]);
    }
    s <<= 1;
}
var y = 0;
for (var i = 0; i < n; i++) y |= ans[i] & i;
if (y != k)
{
    Console.WriteLine("No");
    return;
}
Console.WriteLine("Yes");
Console.WriteLine(string.Join(' ', Enumerable.Range(0, n)));
Console.WriteLine(string.Join(' ', ans));
0