답안 #484631

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
484631 2021-11-04T21:51:54 Z Victor Calvinball championship (CEOI15_teams) C++17
20 / 100
381 ms 984 KB
#include <bits/stdc++.h>

using namespace std;

#define rep(i, a, b) for (int i = (a); i < (b); ++i)
#define per(i, a, b) for (int i = (b - 1); i >= (a); --i)
#define trav(a, x) for (auto &a : x)

#define all(x) x.begin(), x.end()
#define sz(x) x.size()
#define pb push_back
#define debug(x) cout<<#x<<" = "<<x<<endl

#define umap unordered_map
#define uset unordered_set

typedef pair<int, int> ii;
typedef pair<int, ii> iii;
typedef vector<int> vi;
typedef vector<ii> vii;
typedef vector<vi> vvi;

typedef long long ll;
typedef pair<ll,ll> pll;
typedef vector<ll> vll;
typedef vector<pll> vpll;

const int INF = 1'000'000'007;

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

    int n,arr[10001];
    set<ii>vals;
    cin>>n;
    rep(i,1,n+1){
        cin>>arr[i];
        vals.emplace(arr[i],i);
    }

    ll ans=1;
    vll dp(n+1,1),dp2(n+1,0);
    per(i,2,n+1){
        vals.erase({arr[i],i});
        int mx=(--vals.end())->first;

        rep(j,1,n+1){
            if(1<j)dp2[j-1]=(dp2[j-1]+dp[j])%INF;
            if(j<i)dp2[j]=(dp2[j]+dp[j]*ll(j))%INF;
        }

        ans=(ans+dp[mx]*(arr[i]-1))%INF;
        dp.swap(dp2);
        dp2.assign(n+1,0);
    }
    cout<<ans<<endl;
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 332 KB Output is correct
2 Correct 0 ms 332 KB Output is correct
3 Correct 0 ms 332 KB Output is correct
4 Correct 0 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 332 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 332 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 332 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 332 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 332 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 332 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 268 ms 972 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 72 ms 660 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 381 ms 984 KB Output isn't correct
2 Halted 0 ms 0 KB -