C++の練習を兼ねて, AtCoder Beginner Contest 149 の 問題E (Handshake) を解いてみた.
■感想.
1. 問題Eは, 方針が見えなかったので, 解説を参考に, AC版に到達できたと思う.
2. 実装に苦労したものの(特に, 二分探索後に, 幸福度を計算する箇所), 二分探索の復習が出来たので, 非常に良かったと思う.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.
本家のサイト AtCoder Beginner Contest 149 解説 を ご覧下さい.
■C++版プログラム(問題E/AC版).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
// 解き直し. // https://img.atcoder.jp/abc149/editorial.pdf // C++(GCC 9.2.1) #include <bits/stdc++.h> using namespace std; using LL = long long; using vi = vector<int>; #define repex(i, a, b, c) for(int i = a; i < b; i += c) #define repx(i, a, b) repex(i, a, b, 1) #define rep(i, n) repx(i, 0, n) #define repr(i, a, b) for(int i = a; i >= b; i--) #define all(x) x.begin(), x.end() int hCum[202020]; LL aCum[202020]; int main(){ // 1. 入力情報. int N; LL M; scanf("%d %lld", &N, &M); vi a(N); map<int, int> ma; ma[0] = 0; rep(i, N){ scanf("%d", &a[i]); hCum[a[i]]++; ma[a[i]]++; } // 2. sort. sort(all(a)); reverse(all(a)); // 3. 累積和. repr(i, 202020 - 2, 0) hCum[i] += hCum[i + 1]; rep(i, N) aCum[i + 1] = aCum[i] + (LL)a[i]; // 4. 評価関数. auto f = [&](int m) -> bool { // 4-1. 定数 m 以上になる握手の方法の通り数. // -> 左手で握手する人を決めて, 右手で握手できる人数を加算. LL c = 0; rep(i, N){ int r = max(0, m - a[i]); c += (LL)hCum[r]; } // 4-2. 判定結果. return (c >= M); }; // 5. 二分探索で確認してみる. int l = -1, h = 2e5 + 1, m; while(l + 1 < h){ int m = (h + l) >> 1; if(f(m)) l = m; else h = m; } // 6. 集計. // 6-1. 最小でない幸福度. LL ans = 0, mCur = M; rep(i, N){ // 残りの握手回数をチェック. int r = max(0, h - a[i]); if(mCur < (LL)hCum[r]) break; // 左手. ans += (LL)a[i] * (LL)hCum[r]; // 右手. ans += aCum[hCum[r]]; // 残りの握手回数を減算. mCur -= (LL)hCum[r]; } // 6-2. 最小の幸福度. rep(i, N){ // 残りの握手回数をチェック. int r = l - a[i]; if(r < 0) continue; // 終了条件. if(mCur < (LL)ma[r]){ // 左手. ans += (LL)a[i] * mCur; // 右手. ans += (LL)r * mCur; // 終了. break; } // 左手. ans += (LL)a[i] * (LL)ma[r]; // 右手. ans += (LL)r * (LL)ma[r]; // 残りの握手回数を減算. mCur -= (LL)ma[r]; } // 7. 出力. printf("%lld\n", ans); return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
[入力例] 5 3 10 14 19 34 33 [出力例] 202 ※AtCoderテストケースより [入力例] 9 14 1 3 5 110 24 21 34 5 3 [出力例] 1837 ※AtCoderテストケースより [入力例] 9 73 67597 52981 5828 66249 75177 64141 40773 79105 16076 [出力例] 8128170 ※AtCoderテストケースより [入力例] 6 8 1 1 3 2 2 1 [出力例] 38 [入力例] 18 12 8 8 7 2 11 9 8 10 7 8 12 4 11 10 1 1 5 8 [出力例] 270 [入力例] 50 2022 33 60 77 9 77 34 98 109 88 77 9 104 103 46 67 6 25 119 55 77 120 65 71 67 77 8 19 56 90 73 57 77 116 76 33 111 63 92 18 50 12 28 77 72 39 69 77 116 112 96 [出力例] 300009 [入力例] 5000 20220401 13 18 8 6 25 9 22 5 11 7 8 10 3 10 10 22 6 8 7 23 19 15 21 27 23 27 12 9 6 6 13 16 16 17 20 12 11 16 6 17 6 6 1 25 7 13 1 17 21 11 16 12 22 20 3 11 7 22 23 18 16 21 1 2 7 9 17 15 19 21 17 2 22 12 22 8 20 17 10 8 17 25 18 11 18 21 2 7 10 25 16 17 21 23 9 7 17 17 21 10 23 19 18 11 18 20 6 15 10 5 12 2 17 19 10 12 27 3 19 15 8 8 15 23 13 17 12 23 3 3 15 2 25 7 27 12 25 10 18 22 2 17 12 7 11 13 19 27 17 5 9 3 17 7 27 12 9 25 12 10 9 22 7 23 17 10 13 6 21 19 13 9 2 9 15 23 7 16 22 20 13 17 18 25 17 17 3 25 1 22 5 7 5 8 18 11 5 3 8 17 1 6 8 9 18 3 21 23 22 9 12 1 1 19 27 21 13 8 20 2 25 1 15 25 20 25 22 27 8 17 7 27 27 7 17 22 17 21 10 17 17 18 21 12 21 22 9 17 6 27 8 25 12 10 9 12 12 15 11 6 27 13 21 10 2 17 7 20 9 8 20 7 11 19 3 25 11 11 16 13 3 19 11 19 6 8 25 11 6 13 17 8 1 22 10 17 12 7 1 5 3 21 20 13 7 7 5 20 1 27 16 23 8 23 6 10 15 2 20 6 25 17 23 21 22 2 7 11 9 13 10 3 9 23 8 22 18 8 2 13 10 20 10 10 11 18 9 8 8 27 17 17 15 7 22 10 23 5 3 17 15 22 6 23 15 17 3 6 13 2 25 20 13 22 23 7 9 5 9 13 13 21 23 10 27 17 25 23 11 23 27 25 23 19 27 25 20 7 9 15 22 3 13 7 25 18 17 15 22 5 8 7 25 7 10 17 18 7 16 2 15 13 17 22 12 19 23 21 27 17 7 17 13 16 27 23 1 11 22 19 7 23 19 25 18 7 9 13 8 13 25 20 22 11 3 18 18 23 15 9 21 3 27 1 5 21 25 17 19 8 1 11 3 15 22 18 27 10 27 13 9 8 13 13 18 9 16 20 23 16 18 3 9 15 7 12 19 22 13 10 6 3 2 13 22 3 22 15 15 27 16 10 2 17 1 7 2 6 5 1 7 7 10 17 3 10 6 8 6 13 7 20 2 7 11 25 7 16 11 16 20 23 19 18 27 25 5 13 7 11 17 1 11 5 1 12 6 3 7 17 17 16 8 10 19 15 20 12 17 8 2 10 7 9 8 7 3 13 8 20 10 1 17 17 3 3 23 12 8 17 8 8 20 10 10 20 23 11 6 13 18 5 25 22 7 5 11 6 19 9 17 13 2 13 12 7 5 23 27 3 25 6 7 15 17 7 16 23 19 8 11 12 27 2 15 7 12 18 8 12 16 8 11 7 1 15 10 9 8 10 1 13 21 1 10 5 22 3 17 20 10 17 25 25 19 18 12 2 8 17 12 6 15 11 22 7 9 1 8 23 21 7 10 7 10 11 10 1 25 2 5 7 19 13 16 17 9 17 16 10 19 25 22 12 7 17 16 17 12 2 22 8 6 20 9 21 11 16 1 7 17 22 6 8 23 19 5 2 17 6 21 9 25 19 1 1 25 11 25 10 18 23 9 7 23 11 7 22 8 27 10 16 12 6 13 20 11 3 8 7 10 2 9 20 11 23 2 13 25 17 23 17 7 11 11 3 23 1 20 16 16 16 13 7 7 13 16 2 6 10 17 11 20 16 19 12 8 17 3 6 13 27 10 17 20 17 10 10 12 23 10 22 8 7 11 15 6 7 12 15 22 1 8 18 13 21 12 25 6 20 20 27 2 16 27 5 27 7 10 18 22 13 3 23 27 22 6 17 13 13 21 22 17 22 7 20 17 3 8 1 21 16 12 5 18 17 5 18 22 19 19 25 13 13 7 9 15 25 25 10 7 17 16 9 22 16 25 8 8 11 21 5 2 1 27 22 13 8 2 13 9 19 5 11 2 17 3 17 19 10 11 1 16 8 15 17 11 7 22 23 8 7 8 23 20 19 1 27 12 13 20 7 6 11 18 1 16 8 15 17 3 17 16 5 16 25 9 16 11 21 17 10 17 15 7 1 13 12 27 7 23 10 5 16 6 18 2 22 1 19 15 3 17 17 13 21 18 16 6 2 13 8 10 25 17 9 6 12 2 7 19 16 6 12 11 3 15 9 9 11 3 7 25 16 13 7 3 20 20 1 25 21 7 27 22 12 9 6 16 15 22 3 7 1 18 8 12 10 10 8 3 16 20 16 9 27 2 18 22 16 25 8 21 27 5 18 21 5 17 25 16 22 17 15 17 12 27 20 11 10 11 9 19 3 25 16 3 19 9 12 22 6 15 20 9 20 13 10 7 17 15 19 2 7 8 25 16 3 12 18 20 1 17 11 9 27 22 2 11 9 27 7 23 23 16 22 25 3 11 9 10 11 7 27 12 16 20 12 10 8 9 15 16 11 17 17 13 25 3 21 23 12 16 13 5 21 1 7 23 21 7 21 22 17 20 19 16 20 2 12 17 5 8 17 9 16 19 10 17 11 8 15 23 13 25 13 2 8 10 3 9 2 7 22 18 22 18 1 8 9 27 6 1 5 1 8 7 18 8 8 9 21 27 9 9 21 17 7 23 8 3 13 25 9 23 27 6 6 6 15 7 3 13 17 19 11 20 15 7 10 10 3 15 25 23 15 17 8 7 22 25 17 7 9 16 19 27 19 15 7 6 8 7 23 15 18 9 25 27 21 6 18 19 23 9 18 25 11 25 18 17 15 10 15 17 21 27 22 20 5 2 16 12 22 17 2 17 10 12 16 5 3 2 20 9 22 6 27 2 12 21 16 6 12 25 13 7 7 5 10 12 17 7 17 23 13 17 25 19 6 17 19 11 17 23 3 12 12 1 18 27 8 7 13 27 1 12 5 16 13 19 11 17 20 21 7 23 23 3 10 8 1 22 12 22 7 18 6 7 10 5 12 17 18 17 11 20 15 22 21 22 23 20 12 2 15 7 23 11 11 22 17 12 1 6 12 27 8 18 7 12 16 21 20 1 25 7 22 8 27 20 25 20 17 15 12 17 16 8 18 11 15 17 11 12 18 8 15 17 9 7 10 20 17 8 23 5 12 3 12 17 23 6 8 15 16 12 12 12 25 15 21 10 10 22 17 2 17 27 19 7 22 11 10 19 27 7 5 18 3 21 1 8 3 25 15 5 7 6 19 21 12 23 11 17 8 15 22 21 8 11 19 20 7 11 1 11 16 9 6 21 18 12 9 2 1 18 23 7 12 11 17 3 17 19 8 8 6 23 17 6 15 27 18 20 25 23 10 13 23 17 21 6 23 8 23 6 7 3 25 21 11 1 7 7 23 25 8 9 16 5 16 3 5 2 27 10 25 19 5 13 25 1 6 17 13 1 17 10 1 1 18 20 27 1 10 23 3 25 10 2 9 17 18 17 25 9 9 9 9 6 17 16 27 1 22 6 9 2 27 10 16 2 5 10 7 17 21 10 8 16 18 22 23 22 13 18 27 27 17 23 3 25 27 3 3 23 17 6 1 18 7 23 7 9 27 8 13 9 25 15 3 2 9 19 11 17 8 19 18 17 12 8 25 12 6 11 27 7 25 1 3 17 5 6 12 16 9 2 7 7 2 6 17 1 19 25 7 2 21 6 19 6 1 7 1 2 7 2 10 23 19 7 21 17 10 1 3 23 12 25 15 6 19 21 6 1 11 7 5 22 9 25 13 25 7 8 25 1 11 27 23 8 25 13 17 17 17 16 18 6 13 25 18 23 5 7 20 17 7 11 11 19 7 25 18 19 25 12 16 11 8 9 8 7 17 23 3 20 19 3 13 2 9 10 23 23 12 5 5 2 5 15 21 21 23 17 7 11 16 17 7 20 23 17 11 10 19 8 27 25 15 5 25 15 15 12 18 10 7 2 20 11 17 6 15 5 16 1 21 8 9 20 25 17 12 9 21 7 13 8 17 27 27 7 17 27 21 10 7 20 13 7 22 17 7 15 1 12 17 25 19 17 7 20 23 1 27 1 12 13 25 11 18 22 7 5 25 16 3 19 5 15 10 19 7 2 3 7 8 10 15 21 23 23 8 8 7 17 27 8 17 3 22 12 19 9 20 1 7 6 27 18 6 20 6 13 7 16 21 9 1 20 2 9 8 7 11 27 27 7 10 11 27 25 16 3 1 22 1 2 12 2 17 27 19 16 3 25 22 17 2 27 18 13 7 15 27 2 13 1 3 15 19 17 7 10 18 25 6 11 8 11 11 15 13 16 7 25 25 7 11 22 6 3 11 1 23 7 3 11 17 20 10 3 22 27 7 2 12 6 7 17 19 16 22 17 3 5 19 10 9 19 13 20 11 19 9 21 15 10 20 9 27 17 11 22 27 10 11 5 6 12 8 27 16 7 19 17 22 2 5 2 9 10 18 6 9 3 18 12 12 12 1 17 17 10 9 5 9 5 1 16 2 17 3 19 25 16 27 23 15 15 9 7 11 20 5 6 6 20 25 19 19 20 12 20 8 9 7 27 11 13 8 9 27 6 7 21 1 17 17 18 9 2 17 21 11 20 2 10 7 8 17 21 18 13 13 2 21 17 3 1 17 13 7 16 19 21 22 10 17 7 13 13 27 6 9 5 12 17 3 1 16 6 18 13 23 6 16 21 7 9 17 20 9 13 23 7 1 10 8 27 17 16 13 11 21 20 25 17 9 11 21 3 22 11 7 6 13 12 7 23 7 21 20 25 11 22 20 1 23 2 23 25 17 20 20 2 16 27 15 27 27 21 11 13 8 10 20 13 17 5 22 6 17 17 18 27 8 13 22 3 3 13 23 1 17 17 16 12 19 3 27 3 7 19 7 12 3 9 9 7 23 23 1 23 10 16 20 18 13 25 13 1 17 18 9 10 6 2 23 7 13 16 7 22 11 3 10 5 7 22 18 6 16 1 2 17 2 23 12 8 5 10 11 7 15 18 5 17 15 23 12 17 17 22 10 16 17 15 17 3 23 17 27 17 25 15 12 18 11 5 5 11 7 6 25 19 5 9 19 20 19 19 21 15 21 6 19 27 18 13 22 20 18 10 12 9 7 20 17 5 17 17 20 5 22 13 16 3 17 13 20 11 21 19 21 19 6 1 21 10 18 9 6 18 27 12 12 17 1 7 16 23 12 22 17 21 23 25 9 8 2 8 19 20 5 17 11 20 11 12 25 7 21 20 19 15 27 7 10 9 13 1 5 21 17 19 18 27 16 7 10 7 22 7 25 22 25 1 17 13 2 3 13 23 16 17 27 3 25 13 18 7 21 21 15 3 9 18 3 12 27 5 10 13 25 27 10 25 1 10 23 1 17 22 10 7 23 12 3 1 12 17 10 17 23 17 17 27 3 7 25 27 1 18 8 12 2 7 5 27 21 15 8 20 15 16 16 10 7 16 16 15 27 11 20 27 3 5 18 22 1 12 9 13 16 6 21 19 7 17 17 1 21 16 27 1 23 21 12 5 15 13 1 23 15 13 7 21 12 19 10 17 7 7 3 1 11 7 21 1 1 7 11 16 22 1 8 7 3 7 21 7 19 12 11 23 23 17 3 20 7 2 17 1 2 16 8 10 17 3 10 12 20 10 23 22 23 19 2 17 7 12 3 2 5 12 21 19 20 27 20 9 3 2 7 13 13 3 11 1 27 6 12 19 8 20 22 1 2 8 6 23 9 11 2 13 13 9 20 3 15 19 5 11 7 17 23 23 20 11 27 13 20 11 21 16 16 11 5 3 23 13 18 12 17 11 13 11 2 2 27 21 11 25 7 25 7 18 1 1 20 9 21 23 3 17 6 17 1 6 15 7 27 2 10 19 20 5 19 8 20 27 11 12 7 5 25 21 16 10 16 1 15 12 7 25 9 27 15 7 21 15 11 13 19 10 13 17 11 25 17 5 18 23 10 25 25 20 7 3 5 22 21 15 12 7 7 21 23 27 5 15 17 10 6 6 21 10 19 20 15 3 6 8 10 12 19 19 15 3 21 22 15 8 5 8 1 9 20 5 1 7 9 20 19 23 18 23 17 25 22 17 27 27 17 8 22 8 22 12 17 21 11 10 8 2 21 13 12 19 8 2 15 1 27 7 17 1 10 12 7 17 5 23 12 9 18 13 7 3 9 7 15 9 27 6 17 18 15 11 19 18 15 8 5 25 20 17 1 9 1 12 25 16 16 17 21 15 23 1 5 15 12 22 19 11 3 5 7 8 3 15 22 18 16 9 12 11 17 5 12 9 6 18 7 9 2 6 1 17 5 1 25 27 10 20 12 19 23 22 13 21 15 11 3 10 16 17 19 1 17 3 3 13 2 8 3 16 1 17 17 25 17 27 25 1 17 22 19 21 7 17 12 6 21 3 7 5 21 3 1 6 12 20 6 6 1 7 20 20 12 19 6 17 19 23 6 17 5 16 9 1 12 7 18 15 7 1 10 20 15 7 6 5 15 5 13 3 7 10 13 23 17 7 7 7 19 20 6 7 1 8 5 9 20 21 17 3 27 17 6 3 5 6 21 17 27 8 12 10 10 17 11 12 20 7 17 19 12 16 8 6 13 16 12 25 1 1 17 13 16 7 12 1 7 16 15 6 8 23 25 22 13 25 7 19 18 22 23 16 5 6 20 10 1 25 8 19 6 23 5 20 7 17 25 6 22 18 12 18 25 15 3 27 9 8 17 3 27 7 8 10 6 15 18 7 3 10 19 3 13 20 17 10 15 19 6 3 11 25 15 2 15 18 18 22 23 22 7 7 13 9 11 11 12 22 1 5 10 6 25 16 17 17 1 2 22 23 10 3 21 23 18 1 7 3 27 7 13 21 17 25 10 16 25 16 27 6 25 6 17 22 7 7 8 18 16 22 3 8 16 19 27 2 22 27 12 21 13 23 23 23 13 21 11 18 3 25 22 19 23 25 9 11 10 11 5 19 8 15 13 16 3 2 15 5 15 19 20 17 9 6 11 17 16 27 7 15 23 16 20 25 8 7 23 3 22 15 21 3 1 23 15 10 27 27 15 27 3 25 5 10 13 22 25 15 7 22 15 21 8 1 17 7 11 12 27 22 20 10 7 2 7 2 12 25 12 8 20 7 16 5 23 5 6 17 25 15 20 16 15 7 25 12 2 16 21 7 16 21 25 17 18 8 23 17 9 8 10 27 20 11 9 7 12 25 15 1 12 21 25 5 5 17 19 19 7 19 11 12 19 21 23 23 21 21 8 6 20 20 3 22 3 18 13 23 19 13 17 17 13 3 2 13 18 9 22 22 6 19 18 6 17 22 17 8 18 16 18 19 10 17 23 19 27 20 9 5 21 12 18 17 6 1 13 7 17 2 3 25 10 27 20 25 2 1 1 16 5 21 25 5 23 2 23 20 10 22 21 7 13 10 16 9 1 23 13 11 7 21 13 20 25 13 13 6 17 7 17 27 7 8 17 18 15 17 10 13 23 27 17 25 17 5 21 7 7 7 17 23 9 1 23 18 18 20 3 21 8 17 2 6 23 27 7 1 18 18 23 8 16 23 15 10 17 1 6 1 6 18 23 2 17 12 9 2 18 10 11 16 17 19 25 22 27 13 15 12 13 2 6 22 27 21 16 20 17 27 11 17 8 15 3 8 5 7 9 21 11 17 23 21 23 1 13 20 11 17 2 5 6 16 22 13 2 17 22 18 23 7 20 1 3 1 7 25 18 6 6 11 21 5 17 3 17 5 27 18 2 15 7 25 7 16 7 25 13 15 10 5 17 11 2 9 6 11 2 8 27 15 3 3 17 12 8 19 5 6 27 13 8 12 2 6 25 23 17 22 18 6 16 8 6 23 12 15 18 21 1 5 18 18 1 3 6 15 27 10 27 12 25 13 11 6 11 19 17 22 23 22 3 17 8 10 9 7 17 17 9 6 20 18 15 7 2 7 18 19 8 7 8 16 2 7 15 25 13 13 22 23 10 20 13 11 16 11 20 7 21 1 12 17 25 6 20 8 10 10 21 15 9 7 2 7 16 13 17 22 20 20 11 7 19 21 9 20 6 15 21 6 6 7 17 12 7 23 7 2 27 16 7 12 21 17 23 20 9 8 3 20 12 25 27 10 23 23 21 3 5 22 9 8 16 10 7 1 25 21 13 19 1 21 6 23 7 10 11 16 7 5 17 1 27 12 17 16 21 8 27 9 23 1 1 16 10 10 20 9 3 20 17 12 23 11 16 5 3 8 8 3 7 1 27 12 1 16 1 5 7 7 17 11 8 8 17 11 7 15 7 1 21 15 1 12 13 16 10 15 17 27 23 19 20 7 7 17 20 18 12 27 6 21 15 1 20 17 17 3 9 3 27 20 12 7 23 16 7 5 23 7 6 23 18 3 22 22 11 18 20 27 2 18 11 25 12 3 13 17 11 3 5 5 12 3 8 22 2 23 9 23 16 17 12 17 2 18 7 15 25 19 13 7 22 23 16 2 21 13 1 25 9 19 9 6 7 27 5 1 27 10 25 17 8 17 5 21 23 13 18 19 10 3 15 27 9 5 23 3 15 20 1 17 3 7 9 19 27 18 15 7 15 1 7 7 11 5 23 16 20 23 5 7 1 8 13 10 21 22 5 5 17 21 15 5 7 16 13 18 17 17 6 17 18 21 22 23 15 19 13 22 9 12 7 23 1 23 27 21 25 21 20 19 17 3 16 19 3 6 15 7 9 19 5 11 2 5 7 3 7 25 5 11 7 18 7 22 10 20 1 1 22 5 15 22 16 10 21 3 3 6 6 9 16 15 19 10 20 25 21 7 22 27 9 9 5 17 23 12 5 18 11 6 15 19 17 19 10 2 15 1 27 5 5 9 3 11 16 12 17 17 23 11 18 9 13 23 12 16 6 17 23 6 2 6 17 6 7 3 20 21 7 11 3 8 19 13 2 8 2 27 6 16 2 17 25 15 6 12 17 8 11 19 2 11 7 9 9 18 2 6 17 8 5 25 17 22 22 15 16 16 17 13 27 11 6 18 7 10 12 3 12 22 23 27 12 22 13 3 7 16 27 11 7 17 2 12 11 18 7 9 19 9 7 22 15 8 17 5 16 17 17 23 22 13 1 11 7 21 19 18 17 5 23 6 7 5 1 17 6 19 23 1 7 7 1 17 7 27 11 3 11 7 1 3 2 27 22 16 3 20 17 2 20 9 10 7 22 16 7 3 20 17 2 16 8 17 11 16 8 10 7 22 10 7 2 7 23 17 12 7 11 7 8 2 8 10 19 18 7 21 8 15 9 8 7 23 20 17 1 22 10 10 1 11 9 19 12 22 6 13 21 11 19 27 3 20 23 25 12 7 16 20 1 11 6 18 7 11 5 13 16 9 10 25 20 17 11 3 22 7 25 17 6 25 11 12 9 2 15 17 7 15 13 17 22 17 23 17 21 17 5 16 17 16 5 17 15 8 12 10 22 17 17 13 17 7 6 3 16 20 16 16 7 27 3 8 17 5 17 15 25 3 22 21 17 12 7 16 22 17 7 25 1 27 8 3 11 16 7 7 8 1 21 7 2 3 7 13 1 17 17 1 6 12 5 6 23 6 7 10 20 9 18 9 25 15 1 15 22 20 9 7 22 20 9 1 25 9 9 5 27 5 13 21 17 19 25 17 3 21 13 17 9 9 7 27 17 3 22 13 16 19 6 11 12 15 6 3 16 8 1 12 12 1 23 22 7 27 27 8 20 11 25 7 21 1 19 23 27 18 17 3 17 3 17 7 2 13 21 13 1 3 11 20 6 2 16 22 3 9 16 20 25 15 1 23 5 18 6 19 1 11 17 6 19 23 15 9 17 13 25 7 21 11 7 8 10 27 1 15 12 20 9 13 5 19 7 10 18 10 15 2 17 1 18 13 21 12 8 1 20 19 22 23 8 22 11 15 18 11 23 11 13 7 27 10 12 7 6 5 3 25 18 13 5 7 27 13 17 23 10 17 18 27 3 8 18 3 23 3 16 25 22 6 3 21 3 13 22 6 11 8 15 25 3 13 15 17 2 7 2 19 10 3 12 9 11 7 16 2 20 12 19 8 19 12 6 25 23 7 12 7 25 10 23 9 21 25 27 12 16 16 8 10 11 9 17 22 17 25 9 12 23 5 23 20 21 19 15 5 1 17 11 7 25 23 15 6 9 3 8 13 22 17 9 9 10 17 12 8 10 17 13 6 19 22 3 27 13 2 6 2 17 10 11 8 17 13 23 8 6 13 2 6 22 21 22 19 17 3 9 18 25 22 5 16 6 5 16 3 23 13 15 13 19 9 6 17 23 21 21 10 18 17 1 8 6 21 23 11 13 2 9 9 5 17 17 13 20 19 7 3 8 1 9 13 21 1 16 17 18 19 9 13 19 7 17 8 23 20 10 9 5 23 13 21 3 18 3 2 13 13 7 11 27 7 10 6 11 2 1 3 22 20 17 5 22 11 21 23 7 20 15 9 1 1 10 9 13 19 13 25 17 8 12 2 2 9 2 1 7 22 6 9 22 9 18 5 18 7 6 25 15 17 25 23 18 6 1 3 3 19 25 10 23 6 16 9 27 12 22 18 16 21 11 6 16 2 10 5 16 17 19 20 17 15 10 19 21 3 17 22 22 21 21 6 22 10 23 5 18 2 22 8 17 23 23 13 3 7 11 11 12 22 21 5 10 13 10 1 7 3 17 10 22 6 9 9 19 25 25 22 2 16 25 22 7 21 8 9 27 5 11 13 2 5 19 20 19 10 8 22 6 15 7 16 12 13 2 18 21 21 10 25 19 3 21 18 22 15 8 13 17 7 7 7 27 5 2 2 16 7 3 17 2 21 27 5 17 21 21 1 2 12 17 15 25 16 3 13 23 1 1 6 23 1 17 17 20 16 13 25 27 15 1 10 21 20 7 7 17 7 27 7 17 3 11 1 18 18 18 15 7 1 19 2 10 25 27 7 8 11 22 13 2 9 23 13 11 16 17 25 17 27 5 18 27 8 2 7 16 3 23 2 11 8 6 12 6 27 3 10 9 9 1 12 9 10 21 8 19 2 12 7 6 18 3 16 17 9 19 7 17 16 27 20 16 19 19 1 19 1 10 21 25 17 8 23 9 5 13 11 8 11 7 2 25 18 17 7 23 1 7 3 16 7 3 [出力例] 610372398 |
■参照サイト
AtCoder Beginner Contest 149