Submission #1262849

#TimeUsernameProblemLanguageResultExecution timeMemory
1262849nimoxideA Huge Tower (CEOI10_tower)C++20
20 / 100
411 ms78504 KiB
#include<bits/stdc++.h> using namespace std; const int MAXN = 100; const long long MOD = 1e9 + 7; int n, d, a[MAXN]; long long dp[30][1 << 20], answer; vector<int> graph[MAXN]; void input(); void generateGraph(); void countLenNP(); int main() { input(); generateGraph(); countLenNP(); cout << answer % MOD << endl; } void input() { cin >> n >> d; for (int i = 0; i < n; i++) cin >> a[i]; } void generateGraph() { for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) if (a[i] - a[j] >= -d) graph[i].push_back(j); } void countLenNP() { for (int v = 0; v < n; v++) dp[v][1 << v] = 1; for (int mask = 1; mask < (1 << n); mask++) for (int v = 0; v < n; v++) { if (!(mask & (1 << v))) continue; for (int u : graph[v]) { if (mask & (1 << u)) continue; dp[u][mask | (1 << u)] += dp[v][mask] % MOD; dp[u][mask] %= MOD; } } for (int mask = 1; mask < (1 << n); mask++) if (__builtin_popcount(mask) == n) for (int v = 0; v < n; v++) { answer += dp[v][mask]; answer %= MOD; } }
#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...