結果

提出番号 1709
提出者 nebukuro09
言語 C++
提出日時 2018-08-04 13:35:33
問題名 (71)音楽ゲーム
結果 WA
点数 0%

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 WA 0% 6ms 7824KB
2 AC 100% 5ms 8400KB
3 AC 100% 5ms 8416KB
4 WA 0% 10ms 8432KB
5 AC 100% 7ms 8416KB
6 AC 100% 9ms 7872KB
7 AC 100% 2ms 7808KB
8 AC 100% 9ms 8016KB
9 AC 100% 13ms 9408KB
10 AC 100% 9ms 8288KB
11 AC 100% 10ms 8416KB
12 AC 100% 16ms 10512KB
13 AC 100% 6ms 8096KB
14 AC 100% 13ms 9600KB
15 AC 100% 4ms 8432KB
16 AC 100% 3ms 7792KB
17 AC 100% 17ms 10976KB
18 AC 100% 13ms 9328KB
19 AC 100% 6ms 8416KB
20 AC 100% 10ms 8272KB
21 AC 100% 17ms 10992KB
22 WA 0% 16ms 10368KB
23 AC 100% 17ms 10688KB
24 AC 100% 2ms 8400KB
25 AC 100% 16ms 10560KB
26 AC 100% 18ms 11152KB
27 AC 100% 8ms 8432KB
28 WA 0% 18ms 11168KB
29 AC 100% 12ms 8944KB
30 WA 0% 13ms 10144KB

ソースコード

#include <bits/stdc++.h>
using namespace std;
#define REP(i,n) for (int i=0;i<(n);i++)
#define REP2(i,m,n) for (int i=m;i<(n);i++)
typedef long long ll;
typedef long double ld;

const ll MOD = 1000000007;
ll A[101010];
ll dp[101010];

int main() {
    cin.tie(0);
    ios::sync_with_stdio(false);

    int N; cin >> N;
    REP(i, N) cin >> A[i];
    sort(A, A+N);

    ll tmp = 0;
    int last = -1;

    REP(i, N) {
        if (i == 0) {
            dp[i] = 1;
            continue;
        }
        while (last + 1 < N && A[last + 1] < A[i]) {
            ++last;
            (tmp += dp[last]) %= MOD;
        }
        (dp[i] += tmp) %= MOD;
    }

    ll ans = 0;
    REP(i, N) ans = (ans + dp[i]) % MOD;
    cout << ans << endl;
}