Submission #874374

#TimeUsernameProblemLanguageResultExecution timeMemory
874374IrateA Huge Tower (CEOI10_tower)C++14
45 / 100
947 ms171820 KiB
#include<bits/stdc++.h> using namespace std; const int MOD = 1e9 + 9; int n, d; vector<int>v; int dp[20][(1 << 20)]; int rec(int indx, int mask){ int res = 0; if(mask == 0)return 1; if(dp[indx][mask] != -1)return dp[indx][mask]; for(int i = 0;i < n;++i){ if((mask & (1 << i)) && v[indx] + d >= v[i]){ res += rec(i, mask ^ (1 << i)); res %= MOD; } } return dp[indx][mask] = res; } int main() { // ios_base::sync_with_stdio(0); // cin.tie(0); cin >> n >> d; v.resize(n); for(int i = 0;i < n;++i){ cin >> v[i]; } int res = 0; for(int i = 0;i < 20;++i){ for(int j = 0;j < (1 << 20);++j){ dp[i][j] = -1; } } for(int i = 0;i < n;++i){ res += rec(i, ((1 << n) - 1) ^ (1 << i)); res %= MOD; } cout << res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...