Submission #4636094
Source Code Expand
#include <bits/stdc++.h> using namespace std; const int MOD = 1e9 + 7; array<int, 1 << 25> dp; void f(int mask, int pos) { if ((mask >> pos) & 1) return; int x = pos % 5; int y = pos / 5; if (x > 0 && x < 4 && ((mask >> (pos - 1)) ^ (mask >> (pos + 1))) & 1) { return; } if (y > 0 && y < 4 && ((mask >> (pos - 5)) ^ (mask >> (pos + 5))) & 1) { return; } dp[mask + (1 << pos)] += dp[mask]; dp[mask + (1 << pos)] %= MOD; } int main() { vector<int> not_arranged; map<int, int> arranged; for (size_t i = 0; i < 25; i++) { int x; cin >> x; if (x) { arranged[x] = i; } else { not_arranged.push_back(i); } } dp[0] = 1; for (size_t mask = 0; mask < (1 << 25) - 1; mask++) { if (!dp[mask]) continue; int n = __builtin_popcount(mask) + 1; if (arranged.find(n) != end(arranged)) { f(mask, arranged[n]); } else { for (auto&& x : not_arranged) f(mask, x); } } cout << dp[(1 << 25) - 1] << endl; }
Submission Info
Submission Time | |
---|---|
Task | D - 25個の整数 |
User | hrbt |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1102 Byte |
Status | AC |
Exec Time | 113 ms |
Memory | 113280 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 30 / 30 | 70 / 70 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt |
Subtask1 | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, test-1-01.txt, test-1-02.txt, test-1-03.txt, test-1-04.txt, test-1-05.txt, test-1-06.txt, test-1-07.txt, test-1-08.txt, test-1-09.txt, test-1-10.txt, test-1-11.txt, test-1-12.txt, test-1-13.txt, test-1-14.txt, test-1-15.txt |
Subtask2 | sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, test-1-01.txt, test-1-02.txt, test-1-03.txt, test-1-04.txt, test-1-05.txt, test-1-06.txt, test-1-07.txt, test-1-08.txt, test-1-09.txt, test-1-10.txt, test-1-11.txt, test-1-12.txt, test-1-13.txt, test-1-14.txt, test-1-15.txt, test-2-01.txt, test-2-02.txt, test-2-03.txt, test-2-04.txt, test-2-05.txt, test-2-06.txt, test-2-07.txt, test-2-08.txt, test-2-09.txt, test-2-10.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample-01.txt | AC | 37 ms | 12544 KB |
sample-02.txt | AC | 38 ms | 20736 KB |
sample-03.txt | AC | 34 ms | 256 KB |
sample-04.txt | AC | 37 ms | 12544 KB |
test-1-01.txt | AC | 36 ms | 12544 KB |
test-1-02.txt | AC | 37 ms | 14592 KB |
test-1-03.txt | AC | 37 ms | 16640 KB |
test-1-04.txt | AC | 48 ms | 69888 KB |
test-1-05.txt | AC | 37 ms | 16640 KB |
test-1-06.txt | AC | 37 ms | 16640 KB |
test-1-07.txt | AC | 35 ms | 2304 KB |
test-1-08.txt | AC | 42 ms | 39168 KB |
test-1-09.txt | AC | 37 ms | 12544 KB |
test-1-10.txt | AC | 37 ms | 12544 KB |
test-1-11.txt | AC | 36 ms | 12544 KB |
test-1-12.txt | AC | 38 ms | 18688 KB |
test-1-13.txt | AC | 36 ms | 12544 KB |
test-1-14.txt | AC | 38 ms | 18688 KB |
test-1-15.txt | AC | 39 ms | 24832 KB |
test-2-01.txt | AC | 41 ms | 33024 KB |
test-2-02.txt | AC | 40 ms | 24960 KB |
test-2-03.txt | AC | 40 ms | 30976 KB |
test-2-04.txt | AC | 58 ms | 113152 KB |
test-2-05.txt | AC | 52 ms | 70272 KB |
test-2-06.txt | AC | 90 ms | 68224 KB |
test-2-07.txt | AC | 79 ms | 92416 KB |
test-2-08.txt | AC | 97 ms | 113280 KB |
test-2-09.txt | AC | 82 ms | 74624 KB |
test-2-10.txt | AC | 113 ms | 78336 KB |