Submission #1754506


Source Code Expand

#include <bits/stdc++.h>
#include <stdio.h>
using namespace std;

#define INF 1.1e9
#define LINF 1.1e18
#define FOR(i,a,b) for (long long i = (a); i < (b); ++i)
#define REP(i,n) FOR(i,0,n)
#define ALL(v) (v).begin(), (v).end()
#define pb push_back
#define fi first
#define se second

typedef long long ll;
typedef pair<int, int> P;
typedef pair<int, P> PP;

int fld[26];
const int MOD=1e9+7;
vector<int> v;
ll dp[1<<25];

int main() {
	cin.tie(0);
	ios::sync_with_stdio(false);

	REP(i,26) fld[i]=-1;

	REP(i,25) {
		int x; cin>>x;
		if(x==0) v.pb(i);
		else fld[x]=i;
	}
	dp[0]=1;
	REP(i,(1<<25)-1) {
		if(dp[i]) {
			int s=__builtin_popcount(i)+1;
			if(fld[s]>=0) {
				int r=fld[s];
				int x=r%5,y=r/5;
				if(((i>>r)&1)==0) {
					if(x>0&&x<4&&((i>>(r-1))^(i>>(r+1)))&1) continue;
					if(y>0&&y<4&&((i>>(r-5))^(i>>(r+5)))&1) continue;
					(dp[i|(1<<r)]+=dp[i])%=MOD;
				}
			}
			else {
				REP(j,v.size()) {
					int n=v[j];
					int x=n%5,y=n/5;
					if(((i>>n)&1)==0) {
						if(x>0&&x<4&&((i>>(n-1))^(i>>(n+1)))&1) continue;
						if(y>0&&y<4&&((i>>(n-5))^(i>>(n+5)))&1) continue;
						(dp[i|(1<<n)]+=dp[i])%=MOD;
					}
				}
			}
		}
	}
	cout<<dp[(1<<25)-1]<<endl;

	return 0;
}

Submission Info

Submission Time
Task D - 25個の整数
User moko_freedom
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1258 Byte
Status AC
Exec Time 113 ms
Memory 146304 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 70 / 70
Status
AC × 4
AC × 19
AC × 29
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 26 ms 14592 KB
sample-02.txt AC 31 ms 37120 KB
sample-03.txt AC 24 ms 256 KB
sample-04.txt AC 26 ms 14592 KB
test-1-01.txt AC 28 ms 20736 KB
test-1-02.txt AC 27 ms 18688 KB
test-1-03.txt AC 28 ms 20736 KB
test-1-04.txt AC 38 ms 71936 KB
test-1-05.txt AC 27 ms 18688 KB
test-1-06.txt AC 27 ms 18688 KB
test-1-07.txt AC 24 ms 2304 KB
test-1-08.txt AC 34 ms 51456 KB
test-1-09.txt AC 26 ms 14592 KB
test-1-10.txt AC 26 ms 14592 KB
test-1-11.txt AC 26 ms 14592 KB
test-1-12.txt AC 28 ms 22784 KB
test-1-13.txt AC 26 ms 14592 KB
test-1-14.txt AC 28 ms 20736 KB
test-1-15.txt AC 29 ms 26880 KB
test-2-01.txt AC 31 ms 35072 KB
test-2-02.txt AC 32 ms 41472 KB
test-2-03.txt AC 35 ms 51456 KB
test-2-04.txt AC 76 ms 141952 KB
test-2-05.txt AC 58 ms 140032 KB
test-2-06.txt AC 91 ms 137856 KB
test-2-07.txt AC 78 ms 142848 KB
test-2-08.txt AC 91 ms 144640 KB
test-2-09.txt AC 82 ms 135936 KB
test-2-10.txt AC 113 ms 146304 KB