結果

問題 No.148 試験監督(3)
ユーザー te-shte-sh
提出日時 2017-04-27 12:18:36
言語 D
(dmd 2.107.1)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 29,079 bytes
コンパイル時間 403 ms
コンパイル使用メモリ 73,020 KB
最終ジャッジ日時 2023-09-03 13:02:26
合計ジャッジ時間 820 ms
ジャッジサーバーID
(参考情報)
judge12 / judge15
このコードへのチャレンジ(β)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
Main.d(313): Error: no property `removechars` for `"\nBmLs0yFd8pUoe+mUJmUUASY2ciEVrBawICLlXBJ4Aogni/cWInUI1y2lTlYi6rDiIo6lqjNdMGIAWP4lDnf9vDWWJ5sI+B1eJWxlQw9xQ7Yges2pNhXUKxkmuUIQoIVn\nOg8W+DtsfkIcQCbUHJsAtyzVErkS2SXNABgJkCUCKnwYLJ88OQG1cykiZiABdiwWIlZEejdsuDMA3BFdDvuTByK3UcINHkMyBdzgZi2Axjs6bW93JNeGIhfEB9UtkCR0\nHG5sXSiuG3EJGKnjFJd1qhgFqxQIZWrYCAYxUBY9dBsbfLU3FaZeJR9ht3MFt+BZASi/4SLUAech8yJ+AIoFUDed8bo5K9VtIVMiGwC92/EeTQDACflKWQSAoBoQb35i\nCDeBLwOYma0jsTWiAdxwNy26vnchoNxcDTyl+RQH4UUlrEmMNWJsmwo0DRUyu7CeDtOKrCXa6vgkD9IBMt4TOCCMB2IlV5f0M7PxAzXu8Q4cV5RSEc2zPRE3ZmQDHgLL\nLFJ5OxyXw7oHfOWbHUWcfCeEFr8W+Z3bHL6pBxdwF3sOn57+HElSfAuuxAIs98xTIFkMhSG48D8fQE4vIIXu1wN/ZdMvN7XdDrdidwX04NovBlWKKEshnSRmVr8ADskn\nI3d50g6XpvsegBM4NcrxtiLzAE46XHRTOnObsxxLWlkBzBt8JhATJhkW6gsVCxp2EMhNtDbsXHk0jmDiMq4SUSpiymw2ye+xMY7NeQEobUk2Pm50M2ZZCBF94O8gXNgk\nMrGZxArXtrEdmHrNIrtWWgoPCmMEjv3MHHgxrzdxbAc4IY5OAbQgGQ/7P/Mo1W4QAzTI+igaZEMisCCAMjP8ZDh6MSIa4382E+P5Xia+WuA008dAM8lIoCSSScUpd5Kz\nMtty1hzt1WINsuIkMUzQGB1eL+cRs3kCG6W/3yawVrAMNd/RLUz5ADgw8jIgbfBRCxIY2yDRTsEltJvBKh5PFzWJQpcy84twEcAdxyORXPMbzt0TL59G4CxPs6cL3Hrk\nH2Oi3Di/EjsE8VwMNxPMTwFq0mM3Fw9OGt885Sskj8Af6sLDAzeZdB7XdN8Dz4eYCVR4WjAoANwSNp7NIIYl/gHCCZQrCMmOAvKkYByiL5kfXmn8CQHf8xHTryIfK8MJ\nFlIiTB0pZOcjKB3cE0nQpwkkmVcP+91AAuEFAwVjJH4KTSMLL7gEqS0hIy8KF+dcC3reexfDrW4oPWwPCFWqJggYwlkcV5UrH50Ybh3CoqsABlaQBtd+piJdeAYRjwzl\nKo7fGBtHujs0J7pLDy2yWzCBsCYKRbOwHbQZ3w9jXJACk3EUBAOljTY232ABABisHY39iBgCaRMdputrBpTymBpViSEirXkIIXcuIwu1i+EYHrffBw5SlDZIKAoytFDc\nKwmu5S5e34sAv8ehLJaUGQOV3u4NnCpQGdM5EB8cUWkDHzssKdRN3BhNT5calHElLN1s9ADoICwmyePDLXKDYRfHzcQwKkOmAlmdQgCDPKYsfz9VIvH5eycXVZQJFO1y\nLDDEZTBhD58YwdMMFwr2XQXUD5wT3MmRLmskDgxDZbAiBr0SDm/cEA0I81wBoZtzIYMGnDris58ynPjqKUjPQBohBVYZKq4qMmAAtzSlzi4OiJuJA4tuzC2nqGkFU7f1\nOftvxCO0ocUAWyqNE1Dm9ArFP+gxq8wWL0+/Ey2rOwIb7mbjMGnujh2AH8YDhnbGJCO+hCuhdKYl2dRhLT4NbSELuIkFKY5NIWBqiSdE4gIi8yR5IYcVRTUIhMsrJ3xV\nMBhMOTtSWtYIFso7FFJawynHIPYTWb8tKw+CtAOP1vgWIQeQD9loSjKukDsDrfYLNOWiDiVJDOwQrykaJmKrSAq79rEAj5H+LwVWPiWdAi4VV2yCKpYJGTSvVqEwL2

ソースコード

diff #

import std.algorithm, std.conv, std.range, std.stdio, std.string;
import std.bigint;    // BigInt

const q = 10 ^^ 9 + 7;
alias FactorRing!q mint;

void main()
{
  auto factTable = buildFactTable(factStr);
  auto t = readln.chomp.to!size_t;
  foreach (_; 0..t) {
    auto rd = readln.split.to!(BigInt[]), c = rd[0], p = rd[1];
    if (p >= q) {
      writeln(0);
      continue;
    }

    auto d = c - p + 1;
    if (d <= 0) {
      writeln(0);
      continue;
    }

    auto e = int(d % q), p2 = int(p % q);
    if (e - p + 1 < 0) {
      writeln(0);
      continue;
    }

    auto f = e - p2;
    writeln(fact(e, factTable) * fact(f, factTable).inv);
  }
}

auto fact(int n, int[] factTable)
{
  auto r = mint(n < factPer ? 1 : factTable[n / factPer - 1]);
  auto offset = n / factPer * factPer;
  foreach (i; 1..(n % factPer + 1))
    r = r * (i + offset);
  return r;
}

struct FactorRing(int m)
{
  long v;

  @property int toInt() { return v.to!int; }
  alias toInt this;

  this(T)(T _v) { v = mod(_v); }

  ref FactorRing!m opAssign(int _v)
  {
    v = mod(_v);
    return this;
  }

  pure auto mod(long _v) const { return _v > 0 ? _v % m : ((_v % m) + m) % m; }

  pure auto opBinary(string op: "+")(FactorRing!m rhs) const { return FactorRing!m(v + rhs.v); }
  pure auto opBinary(string op: "-")(FactorRing!m rhs) const { return FactorRing!m(v - rhs.v); }
  pure auto opBinary(string op: "*")(FactorRing!m rhs) const { return FactorRing!m(v * rhs.v); }

  pure auto opBinary(string op)(int rhs) const
    if (op == "+" || op == "-" || op == "*") { return opBinary!op(FactorRing!m(rhs)); }

  pure auto inv() const
  {
    int x = v.to!int, a, b;
    exEuclid(x, m, a, b);
    return FactorRing!m(a);
  }
}

pure T exEuclid(T)(T a, T b, ref T x, ref T y)
{
  auto g = a;
  x = 1;
  y = 0;
  if (b != 0) {
    g = exEuclid(b, a % b, y, x);
    y -= a / b * x;
  }
  return g;
}

const factPer = 200000;

int[] buildFactTable(string str)
{
  import std.base64, std.bitmanip, std.regex;

  auto buf = Base64.decode(str);
  auto table = new int[](5000);
  size_t index = 0;
  foreach (i; 0..5000)
    table[i] = buf.peek!int(&index);

  return table;
}

const factStr = "
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
".removechars("\n");
0