Submission #2698684


Source Code Expand

#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<cstdlib>
#include<cassert>
#include<ctime>
#define cmin(a,b) (a>(b)?a=(b),1:0)
#define cmax(a,b) (a<(b)?a=(b),1:0)
#define dmin(a,b) ((a)<(b)?(a):(b))
#define dmax(a,b) ((a)>(b)?(a):(b))
namespace io
{
	int F()
	{
		int n=0,F=1;
		char ch;
		while((ch=getchar())!='-'&&(ch<'0'||ch>'9'));
		ch=='-'?F=0:n=ch-'0';
		while((ch=getchar())>='0'&&ch<='9')n=n*10+ch-'0';
		return F?n:-n;
	}
}
const int M=1000000007;
int c[22][22];
int f[2][533333]; 
int fir[20][533333];
int main()
{
	//freopen("zigzag.in","r",stdin);
	//freopen("zigzag.out","w",stdout);
	int n=io::F(),m=io::F(),k=io::F();
	if(n==1)puts("1"),exit(0);
	memset(c,-1,sizeof(c));
	for(register int i=1;i<=k;++i)
	{
		int a=io::F(),b=io::F(),v=io::F();
		if(c[a][b]==-1)c[a][b]=v;
			else if(c[a][b]!=v)puts("0"),exit(0);
	}
	for(register int i=1;i<1<<n-1;++i)
	{
		fir[n-1][i]=i&1<<n-2;
		for(register int j=n-2;j>=0;--j)
			fir[j][i]=i&1<<j?1<<j:fir[j+1][i];
	}
	int *x=f[0],*y=f[1];
	f[0][0]=1;
	for(register int i=1;i<=m;++i)
	{
		for(register int j=1;j<n;++j,std::swap(x,y),memset(y,0,sizeof(f[0])))
		{
			for(register int k=0;k<1<<n-1;++k)
				if(x[k])
				{
					if(c[i][j]!=1&&(k>>j-1&1)==0)
						(y[k]+=x[k])%=M; 
					if(c[i][j]!=0)
						(y[k^fir[j-1][k]^1<<j-1]+=x[k])%=M;
				}
		}
		//for(register int j=0;j<1<<n-1;++j)(y[0]+=x[j])%=M;
		//std::swap(x,y),memset(y,0,sizeof(f[0]));
	}
	int ans=0;
	for(register int i=0;i<1<<n-1;++i)(ans+=x[i])%=M;
	printf("%d\n",ans);
	return 0;
}

Submission Info

Submission Time
Task F - Zigzag
User ESpace
Language C++14 (GCC 5.4.1)
Score 1600
Code Size 1602 Byte
Status AC
Exec Time 972 ms
Memory 45952 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1600 / 1600
Status
AC × 4
AC × 41
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt, sample4.txt
All sample1.txt, sample2.txt, sample3.txt, sample4.txt, a1.txt, a10.txt, a11.txt, a12.txt, a13.txt, a2.txt, a3.txt, a4.txt, a5.txt, a6.txt, a7.txt, a8.txt, a9.txt, b1.txt, b10.txt, b11.txt, b12.txt, b13.txt, b14.txt, b15.txt, b16.txt, b17.txt, b2.txt, b3.txt, b4.txt, b5.txt, b6.txt, b7.txt, b8.txt, b9.txt, n18.txt, n19.txt, n20.txt, sample1.txt, sample2.txt, sample3.txt, sample4.txt
Case Name Status Exec Time Memory
a1.txt AC 5 ms 13184 KB
a10.txt AC 478 ms 45952 KB
a11.txt AC 337 ms 45952 KB
a12.txt AC 310 ms 45952 KB
a13.txt AC 306 ms 45952 KB
a2.txt AC 5 ms 13184 KB
a3.txt AC 5 ms 13184 KB
a4.txt AC 14 ms 23424 KB
a5.txt AC 41 ms 33792 KB
a6.txt AC 950 ms 45952 KB
a7.txt AC 758 ms 45952 KB
a8.txt AC 787 ms 45952 KB
a9.txt AC 636 ms 45952 KB
b1.txt AC 24 ms 23424 KB
b10.txt AC 597 ms 45952 KB
b11.txt AC 364 ms 45952 KB
b12.txt AC 257 ms 45952 KB
b13.txt AC 228 ms 45952 KB
b14.txt AC 208 ms 45952 KB
b15.txt AC 207 ms 45952 KB
b16.txt AC 206 ms 45952 KB
b17.txt AC 206 ms 45952 KB
b2.txt AC 363 ms 45952 KB
b3.txt AC 11 ms 13184 KB
b4.txt AC 29 ms 40320 KB
b5.txt AC 4 ms 7040 KB
b6.txt AC 70 ms 45952 KB
b7.txt AC 950 ms 45952 KB
b8.txt AC 880 ms 45952 KB
b9.txt AC 714 ms 45952 KB
n18.txt AC 222 ms 40320 KB
n19.txt AC 443 ms 42880 KB
n20.txt AC 972 ms 45952 KB
sample1.txt AC 3 ms 9088 KB
sample2.txt AC 3 ms 9088 KB
sample3.txt AC 5 ms 13184 KB
sample4.txt AC 971 ms 45952 KB