Submission #3043444
Source Code Expand
#include <cstdlib> #include <cmath> #include <climits> #include <cfloat> #include <map> #include <utility> #include <set> #include <iostream> #include <memory> #include <string> #include <vector> #include <algorithm> #include <functional> #include <sstream> #include <deque> #include <complex> #include <stack> #include <queue> #include <cstdio> #include <cctype> #include <cstring> #include <ctime> #include <iterator> #include <bitset> #include <numeric> #include <list> #include <iomanip> using namespace std; typedef long long LL; typedef pair<int,int> pii; typedef pair<LL,LL> pll; typedef vector<int> vint; typedef vector<vector<int> > vvint; typedef vector<long long> vll, vLL; typedef vector<vector<long long> > vvll, vvLL; #define VV(T) vector<vector< T > > template <class T> void initvv(vector<vector<T> > &v, int a, int b, const T &t = T()){ v.assign(a, vector<T>(b, t)); } template <class F, class T> void convert(const F &f, T &t){ stringstream ss; ss << f; ss >> t; } #define REP(i,n) for(int i=0;i<int(n);++i) #define ALL(v) (v).begin(),(v).end() #define RALL(v) (v).rbegin(),(v).rend() #define PB push #define MOD 1000000007LL #define EPS 1e-8 int x[ 25 ]; int fix[ 26 ]; int dp[ 1 << 25 ]; vector<int> V; int main() { REP( i, 26 ) fix[ i ] = -1; REP( i, 25 ) { cin >> x[ i ]; if( x[ i ] == 0 ) V.push_back( i ); else fix[ x[ i ] ] = i; } dp[ 0 ] = 1; for( int bits = 0; bits <= ( 1 << 25 ) - 1; ++bits ) { if( dp[ bits ] ) { int nextNum = __builtin_popcount( bits ) + 1; vector<int> v; if( fix[ nextNum ] >= 0 ) v.push_back( fix[ nextNum ] ); else v = V; for( auto p : v ) { if( ( bits & ( 1 << p ) ) == 0 ) { int y = p / 5; int x = p % 5; if( y > 0 && y < 4 && ( ( ( bits >> ( p - 5 ) ) ^ ( bits >> ( p + 5 ) ) ) & 1 ) ) continue; if( x > 0 && x < 4 && ( ( ( bits >> ( p - 1 ) ) ^ ( bits >> ( p + 1 ) ) ) & 1 ) ) continue; dp[ bits | ( 1 << p ) ] += dp[ bits ]; dp[ bits | ( 1 << p ) ] %= MOD; } } } } cout << dp[ ( 1 << 25 ) - 1 ] << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - 25個の整数 |
User | keitanxkeitan |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 2180 Byte |
Status | AC |
Exec Time | 131 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 | 38 ms | 12544 KB |
sample-02.txt | AC | 40 ms | 20736 KB |
sample-03.txt | AC | 34 ms | 256 KB |
sample-04.txt | AC | 37 ms | 12544 KB |
test-1-01.txt | AC | 37 ms | 12544 KB |
test-1-02.txt | AC | 38 ms | 14592 KB |
test-1-03.txt | AC | 38 ms | 16640 KB |
test-1-04.txt | AC | 53 ms | 69888 KB |
test-1-05.txt | AC | 38 ms | 16640 KB |
test-1-06.txt | AC | 38 ms | 16640 KB |
test-1-07.txt | AC | 35 ms | 2304 KB |
test-1-08.txt | AC | 44 ms | 39168 KB |
test-1-09.txt | AC | 38 ms | 12544 KB |
test-1-10.txt | AC | 38 ms | 12544 KB |
test-1-11.txt | AC | 38 ms | 12544 KB |
test-1-12.txt | AC | 39 ms | 18688 KB |
test-1-13.txt | AC | 37 ms | 12544 KB |
test-1-14.txt | AC | 39 ms | 18688 KB |
test-1-15.txt | AC | 41 ms | 24832 KB |
test-2-01.txt | AC | 43 ms | 33024 KB |
test-2-02.txt | AC | 41 ms | 24960 KB |
test-2-03.txt | AC | 42 ms | 30976 KB |
test-2-04.txt | AC | 65 ms | 113152 KB |
test-2-05.txt | AC | 57 ms | 70272 KB |
test-2-06.txt | AC | 104 ms | 68224 KB |
test-2-07.txt | AC | 89 ms | 92544 KB |
test-2-08.txt | AC | 112 ms | 113280 KB |
test-2-09.txt | AC | 94 ms | 74624 KB |
test-2-10.txt | AC | 131 ms | 78336 KB |