提出 #830351


ソースコード 拡げる

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

std::size_t powmod (std::size_t x, std::size_t n, std::size_t p) {
  if (n == 0) { return 0; }
  if (n == 1) { return x % p; }
  if (n % 2 == 0) {
    std::size_t y = powmod(x, n / 2, p);
    return (y * y) % p;
  }
  return (powmod(x, n / 2, p) * powmod(x, n / 2 + 1, p)) % p;
}

int main () { 

  std::cin.tie(0);
  std::ios::sync_with_stdio(false);

  std::string line;
  std::getline(std::cin, line);

  char * p = &*line.begin();

  int N = std::strtol(p, &p, 10);

  std::vector<int> A(N, 0);

  std::getline(std::cin, line);
  p = &*line.begin();
  int A0 = std::strtol(p, &p, 10);

  for (int i = 1; i < N; ++i) {
    int a = std::strtol(p, &p, 10);
    A[a] += 1;
  }

  if (A0 != 0) {
    std::cout << 0 << std::endl;
    return 0;
  }

  if (A[0] != 0) {
    std::cout << 0 << std::endl;
    return 0;
  }

  std::size_t count = 1;
  std::size_t P = 1000000007;

  if (A[1] > 1) {
    std::size_t n = (A[1] * (A[1] - 1)) / 2;
    count = (count * powmod(2, n, P)) % P;
  }

  for (int i = 2; i < N; ++i) {
    if (A[i] == 0) {
      for (int j = i + 1; j < N; ++j) {
        if (A[j] != 0) {
          std::cout << 0 << std::endl;
          return 0;
        }
      }
      break;
    }

    if (A[i] > 1) { 
      std::size_t n = (A[i] * (A[i] - 1)) / 2;
      count = (count * powmod(2, n, P)) % P;
    }
  
    std::size_t n = powmod(2, A[i - 1], P) - 1;
    count = (count * powmod(n, A[i], P)) % P;
  }

  std::cout << count << std::endl;
}

提出情報

提出日時
問題 B - 最短路問題
ユーザ toufu12345
言語 C++11 (GCC 4.9.2)
得点 0
コード長 1612 Byte
結果 WA
実行時間 2034 ms
メモリ 1980 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 100
結果
AC × 4
AC × 41
WA × 3
TLE × 2
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt
ケース名 結果 実行時間 メモリ
sample_01.txt AC 40 ms 796 KiB
sample_02.txt AC 26 ms 796 KiB
sample_03.txt AC 25 ms 920 KiB
sample_04.txt AC 25 ms 796 KiB
test_01.txt AC 26 ms 792 KiB
test_02.txt AC 26 ms 920 KiB
test_03.txt AC 26 ms 920 KiB
test_04.txt AC 25 ms 924 KiB
test_05.txt AC 27 ms 792 KiB
test_06.txt AC 25 ms 808 KiB
test_07.txt AC 25 ms 928 KiB
test_08.txt AC 24 ms 808 KiB
test_09.txt AC 26 ms 796 KiB
test_10.txt AC 27 ms 804 KiB
test_11.txt WA 34 ms 1648 KiB
test_12.txt TLE 2033 ms 1652 KiB
test_13.txt TLE 2034 ms 1640 KiB
test_14.txt AC 42 ms 1648 KiB
test_15.txt AC 67 ms 1648 KiB
test_16.txt AC 42 ms 1652 KiB
test_17.txt AC 52 ms 1776 KiB
test_18.txt AC 57 ms 1648 KiB
test_19.txt AC 44 ms 1772 KiB
test_20.txt AC 45 ms 1772 KiB
test_21.txt AC 41 ms 1656 KiB
test_22.txt AC 41 ms 1656 KiB
test_23.txt AC 43 ms 1716 KiB
test_24.txt AC 42 ms 1724 KiB
test_25.txt AC 42 ms 1980 KiB
test_26.txt AC 39 ms 1976 KiB
test_27.txt AC 38 ms 1976 KiB
test_28.txt AC 42 ms 1976 KiB
test_29.txt AC 34 ms 1972 KiB
test_30.txt AC 32 ms 1844 KiB
test_31.txt WA 26 ms 800 KiB
test_32.txt AC 26 ms 804 KiB
test_33.txt WA 26 ms 812 KiB
test_34.txt AC 26 ms 928 KiB
test_35.txt AC 26 ms 928 KiB
test_36.txt AC 26 ms 928 KiB
test_37.txt AC 26 ms 800 KiB
test_38.txt AC 24 ms 920 KiB
test_39.txt AC 24 ms 804 KiB
test_40.txt AC 26 ms 808 KiB
test_41.txt AC 26 ms 800 KiB
test_42.txt AC 25 ms 920 KiB