Submission #755984

# Submission time Handle Problem Language Result Execution time Memory
755984 2023-06-10T19:11:05 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)];
int pos[(1 << bnax)];
int LSOne(int val)
{
    return pos[val & (- val)] ;
}
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;
    int rem = ((1 << n) - 1) - mask;
    for(int j = LSOne(rem); rem > 0; j = LSOne(rem))
    {
        if(((1 << j) & mask) == 0)
        {
            if(A[j] <= A[i] + d)
            {
                ans = mod(ans + f(j, mask + (1 << j)));
            }
        }
        rem -= (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;
    for(int i = 0; i < 20 ;i++)
        pos[(1 << i)] = i;
    while(tt--)
        solve();

}
# Verdict Execution time Memory Grader output
1 Correct 62 ms 164416 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 65 ms 164456 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 61 ms 164412 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 61 ms 164428 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 76 ms 164388 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 191 ms 164432 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1008 ms 164508 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 78 ms 164428 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 133 ms 164560 KB Output is correct
# Verdict Execution time Memory Grader output
1 Runtime error 225 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 213 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 439 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 213 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 219 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 224 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 233 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 262 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 233 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 237 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 275 ms 262144 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -