😸

ABC 178 | C - Ubiquity

2020/10/31に公開

問題

https://atcoder.jp/contests/abc178/tasks/abc178_c

考えたこと

以下のベン図よりA_i=0A_i=9が存在する場合は10^N - (2 \times 9^N - 8^N)となる。

コード

実装時のTips

  • 10^9+7で割るのでusing mint = modint1000000007;を使う
#include <bits/stdc++.h>

#include <atcoder/all>

using namespace std;
using namespace atcoder;
using ll = long long;
using ld = long double;
using uint = unsigned int;
using ull = unsigned long long;
const int MOD = 1e9 + 7;
using mint = modint1000000007;

int main() {
  int N;
  cin >> N;
  if (N == 1) {
    cout << 0 << endl;
    return 0;
  } else if (N == 2) {
    cout << 2 << endl;
    return 0;
  }
  mint ans;
  ans += mint(10).pow(N) - (mint(9).pow(N) * 2 - mint(8).pow(N));
  cout << ans.val() << endl;
}

参考

Discussion