답안 #755979

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
755979 2023-06-10T19:00:29 Z vjudge1 A Huge Tower (CEOI10_tower) C++17
40 / 100
1000 ms 262144 KB
#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
using namespace std;
using namespace __gnu_pbds;

typedef long long ll;
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> indexed_set;
const ll MOD = 1e9 + 9;
ll mod(ll x, ll m = MOD){return (x + m) % m;}

typedef vector<int> vi;
typedef vector<ll> vll;
typedef pair<ll,ll> pll;

typedef vector<pair<int,int>> vpi;

#define pb push_back

#define ff first
#define ss second
#define all(x) (x).begin(),(x).end()

const int nax = 504;
const int bnax = 20;
int n, d;
vi A;
ll dp[bnax][(1 << bnax)];
ll f(int i, int mask)
{
    if(dp[i][mask] != -1)
        return dp[i][mask];
    if(mask == (1 << n) - 1)
        return dp[i][mask] = 1ll;
    ll ans = 0ll;
    for(int j =0; j < n; j++)
    {
        if(((1 << j) & mask) == 0)
        {
            if(A[j] <= A[i] + d)
            {
                ans = mod(ans + f(j, mask + (1 << j)));
            }
        }
    }
    return dp[i][mask] = ans;
}
void solve()
{
    memset(dp, -1, sizeof(dp));
    cin >> n >> d;
    A.resize(n);
    for(int i = 0; i < n; i++)
        cin >> A[i];
    ll ans = 0ll;
    for(int i = 0; i < n; i++)
    {
        ans = mod(ans + f(i, (1 << i)));
    }
    cout << ans;
}
int32_t main()
{
    ios::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    int tt = 1; //cin >> tt;
    while(tt--)
        solve();

}
# 결과 실행 시간 메모리 Grader output
1 Correct 63 ms 164428 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 61 ms 164448 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 66 ms 164356 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 62 ms 164452 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 87 ms 164400 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 271 ms 164460 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1049 ms 164368 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 94 ms 164456 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 163 ms 164456 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 229 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 238 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 210 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 214 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 221 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 209 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 220 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 241 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 229 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 237 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 290 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -