Submission #2308099
Source Code Expand
#include <bits/stdc++.h> #define rep(i,n) for(int i=0;i<(n);++i) #define ALL(A) A.begin(), A.end() using namespace std; typedef long long ll; typedef pair<int, int> P; const int MOD = (int)1e9 + 7; int x[25], pos[25]; vector<int> unused; int dp[1<<25]; void calc(int s, int t){ int y = t / 5, x = t % 5; if (s & (1<<t)) return; if (y > 0 && y < 4 && ((s >> (t-5)) ^ (s >> (t+5))) & 1) return; if (x > 0 && x < 4 && ((s >> (t-1)) ^ (s >> (t+1))) & 1) return; (dp[s | (1<<t)] += dp[s]) %= MOD; } int main() { memset(x, 0, sizeof(x)); memset(pos, -1, sizeof(pos)); memset(dp, 0LL, sizeof(dp)); unused.clear(); ios_base::sync_with_stdio(0); cin.tie(0); rep (i, 25){ cin >> x[i]; --x[i]; if (x[i] < 0){ unused.push_back(i); }else{ pos[x[i]] = i; } // end rep } // end rep dp[0] = 1; for (int i = 0; i < 1<<25; ++i){ if (dp[i] == 0) continue; int bit = __builtin_popcount(i); if (pos[bit] >= 0){ calc(i, pos[bit]); }else{ for (int j = 0; j < (int)unused.size(); ++j){ calc(i, unused[j]); } // end for } // end if } // end for int res = dp[(1<<25) - 1]; cout << res << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - 25個の整数 |
User | ty70 |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1211 Byte |
Status | AC |
Exec Time | 142 ms |
Memory | 131328 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 | 76 ms | 131328 KB |
sample-02.txt | AC | 76 ms | 131328 KB |
sample-03.txt | AC | 76 ms | 131328 KB |
sample-04.txt | AC | 76 ms | 131328 KB |
test-1-01.txt | AC | 76 ms | 131328 KB |
test-1-02.txt | AC | 76 ms | 131328 KB |
test-1-03.txt | AC | 76 ms | 131328 KB |
test-1-04.txt | AC | 76 ms | 131328 KB |
test-1-05.txt | AC | 76 ms | 131328 KB |
test-1-06.txt | AC | 76 ms | 131328 KB |
test-1-07.txt | AC | 76 ms | 131328 KB |
test-1-08.txt | AC | 76 ms | 131328 KB |
test-1-09.txt | AC | 76 ms | 131328 KB |
test-1-10.txt | AC | 76 ms | 131328 KB |
test-1-11.txt | AC | 76 ms | 131328 KB |
test-1-12.txt | AC | 76 ms | 131328 KB |
test-1-13.txt | AC | 76 ms | 131328 KB |
test-1-14.txt | AC | 76 ms | 131328 KB |
test-1-15.txt | AC | 76 ms | 131328 KB |
test-2-01.txt | AC | 77 ms | 131328 KB |
test-2-02.txt | AC | 76 ms | 131328 KB |
test-2-03.txt | AC | 76 ms | 131328 KB |
test-2-04.txt | AC | 77 ms | 131328 KB |
test-2-05.txt | AC | 80 ms | 131328 KB |
test-2-06.txt | AC | 120 ms | 131328 KB |
test-2-07.txt | AC | 104 ms | 131328 KB |
test-2-08.txt | AC | 118 ms | 131328 KB |
test-2-09.txt | AC | 111 ms | 131328 KB |
test-2-10.txt | AC | 142 ms | 131328 KB |