Submission #2168152


Source Code Expand

#include<iostream>
#include<vector>
using namespace std;
int M=1e9+7,dp[1<<25],x[26],a;
vector<int>G;
main()
{
	for(int i=0;i<25;i++)
	{
		cin>>a;
		if(a==0)G.push_back(i);
		else x[a]=i+1;
	}
	dp[0]=1;
	for(int i=0;i<1<<25;i++)
	{
		if(!dp[i])continue;
		int b=__builtin_popcount(i)+1;
		if(x[b])
		{
			int r=x[b]-1;
			int X=r/5,Y=r%5;
			if(!((i>>r)&1))
			{
				if(X>0&&X<4&&((i>>(r-5))^(i>>(r+5)))&1)continue;
				if(Y>0&&Y<4&&((i>>(r-1))^(i>>(r+1)))&1)continue;
				dp[i|(1<<r)]+=dp[i];
				if(dp[i|(1<<r)]>=M)dp[i|(1<<r)]-=M;
			}
		}
		else
		{
			for(int j=0;j<G.size();j++)
			{
				int r=G[j],X=G[j]/5,Y=G[j]%5;
				if(!((i>>r)&1))
				{
					if(X>0&&X<4&&((i>>(r-5))^(i>>(r+5)))&1)continue;
					if(Y>0&&Y<4&&((i>>(r-1))^(i>>(r+1)))&1)continue;
					dp[i|(1<<r)]+=dp[i];
					if(dp[i|(1<<r)]>=M)dp[i|(1<<r)]-=M;
				}
			}
		}
	}
	cout<<dp[(1<<25)-1]<<endl;
}

Submission Info

Submission Time
Task D - 25個の整数
User kotatsugame
Language C++14 (GCC 5.4.1)
Score 100
Code Size 918 Byte
Status AC
Exec Time 101 ms
Memory 113280 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 36 ms 12544 KB
sample-02.txt AC 38 ms 20736 KB
sample-03.txt AC 34 ms 256 KB
sample-04.txt AC 36 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 47 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 34 ms 2304 KB
test-1-08.txt AC 42 ms 39168 KB
test-1-09.txt AC 36 ms 12544 KB
test-1-10.txt AC 36 ms 12544 KB
test-1-11.txt AC 37 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 39 ms 24960 KB
test-2-03.txt AC 40 ms 30976 KB
test-2-04.txt AC 57 ms 113152 KB
test-2-05.txt AC 51 ms 70272 KB
test-2-06.txt AC 82 ms 68224 KB
test-2-07.txt AC 74 ms 92416 KB
test-2-08.txt AC 89 ms 113280 KB
test-2-09.txt AC 76 ms 74624 KB
test-2-10.txt AC 101 ms 78336 KB