秋祭 | 静岡高校工学部



卬高杯


提出詳細

提出id提出時刻ユーザー名問題言語判定状況判定実行時間
1148612023-10-24 09:10:48euommoIcpp25/25AC192

#include <bits/stdc++.h>

int main() {
  std::cin.tie(0)->sync_with_stdio(0);
  // std::cin.exceptions(std::cin.failbit);

  const int MOD = 127237991;

  int N;
  std::cin >> N;

  std::vector<int> A(N+1), B(N+1);
  std::vector<int> dp(N+1), sc(N+1);
  for (int i = 1; i <= N; ++i)
    std::cin >> A[i];
  std::sort(A.begin(), A.end());
  std::fill(sc.begin() + 1, sc.end(), 1);

  for (int _ = 0; _ < 4; ++_) {
    for (int i = 1; i <= N; ++i)
      std::cin >> B[i];
    std::sort(B.begin(), B.end());

    int sum = 0;
    for (int i = 1, j = 0; i <= N; ++i) {
      while (j < N and A[j+1] < B[i]) {
        j += 1;
        sum += sc[j];
        if (sum >= MOD) sum -= MOD;
      }
      dp[i] = sum;
    }
    std::swap(A, B);
    std::swap(dp, sc);
  }

  int ans = 0;
  for (int i = 1; i <= N; ++i) {
    ans += sc[i];
    if (ans >= MOD) ans -= MOD;
  }

  std::cout << ans << '\n';

  return 0;
}

sample1.txt AC 2
sample2.txt AC 2
sample3.txt AC 4
sample4.txt AC 7
sample5.txt AC 7
case1.txt AC 7
case2.txt AC 7
case3.txt AC 7
case4.txt AC 7
case5.txt AC 7
case6.txt AC 112
case7.txt AC 73
case8.txt AC 88
case9.txt AC 38
case10.txt AC 40
case11.txt AC 153
case12.txt AC 191
case13.txt AC 138
case14.txt AC 176
case15.txt AC 156
case16.txt AC 108
case17.txt AC 192
case18.txt AC 105
case19.txt AC 170
case20.txt AC 104
192 AC192 AC