Submission #59206810


Source Code Expand

#include <bits/stdc++.h>
#include<atcoder/all>
#define rep(i,n) for(int i=0;i<(n);i++)
using namespace std;
using namespace atcoder;
#define all(a) a.begin(),a.end()
#define cmp(a) sort(all(a));a.erase(unique(all(a)),a.end())
typedef long long ll;
typedef pair<ll,ll> P;
typedef modint1000000007 mi;
constexpr ll mod=1000000007;

unordered_map<int,ll>dp[578];

int main(){
	int h,w;cin>>h>>w;
	string c[24];
	rep(i,h)cin>>c[i];
	dp[0][0]=1;

	if(w==1){
		vector<ll>dp2(h+2);
		dp2[0]=1;
		rep(i,h){
			dp2[i+1]+=dp2[i];
			if(c[i][0]=='.')dp2[i+2]+=dp2[i];
		}
		cout<<dp2[h]+dp2[h+1]<<endl;
		return 0;
	}

	rep(i,h){
		rep(j,w){
			int d=i*w+j;
			for(auto e:dp[d]){
				int k=e.first;
				dp[d+1][k>>1]+=e.second;
				dp[d+1][k>>1]%=mod;
				if(c[i][j]=='.'&&!(k&1)){
					if(j==w-1){
						dp[d+1][(k>>1)|(3<<(w-2))]+=e.second;
						dp[d+1][(k>>1)|(3<<(w-2))]%=mod;
					}
					else if(j==0){
						dp[d+2][(k>>2)|(3<<(w-2))]+=e.second;
						dp[d+2][(k>>2)|(3<<(w-2))]%=mod;
					}
					else{
						dp[d+2][(k>>2)|(7<<(w-3))]+=e.second;
						dp[d+2][(k>>2)|(7<<(w-3))]%=mod;
					}
				}
			}
		}
	}

	ll res=0;
	for(int i=h*w;i<=h*w+1;i++){
		for(auto e:dp[i])res=(res+e.second)%mod;
	}
	cout<<res<<endl;
}

Submission Info

Submission Time
Task 023 - Avoid War(★7)
User Rho17
Language C++ 20 (gcc 12.2)
Score 7
Code Size 1275 Byte
Status AC
Exec Time 4095 ms
Memory 1043400 KiB

Judge Result

Set Name Sample Subtask 1 Subtask 2 Subtask 3 Subtask 4
Score / Max Score 0 / 0 1 / 1 1 / 1 2 / 2 3 / 3
Status
AC × 5
AC × 10
AC × 20
AC × 30
AC × 45
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt
Subtask 1 sample_01, sample_02, 01_01.txt, 01_02.txt, 01_03.txt, 01_04.txt, 01_05.txt, 01_06.txt, 01_07.txt, 01_08.txt, 01_09.txt, 01_10.txt
Subtask 2 sample_01, sample_02, sample_03, 01_01.txt, 01_02.txt, 01_03.txt, 01_04.txt, 01_05.txt, 01_06.txt, 01_07.txt, 01_08.txt, 01_09.txt, 01_10.txt, 02_01.txt, 02_02.txt, 02_03.txt, 02_04.txt, 02_05.txt, 02_06.txt, 02_07.txt, 02_08.txt, 02_09.txt, 02_10.txt
Subtask 3 sample_01, sample_02, sample_03, sample_04, 01_01.txt, 01_02.txt, 01_03.txt, 01_04.txt, 01_05.txt, 01_06.txt, 01_07.txt, 01_08.txt, 01_09.txt, 01_10.txt, 02_01.txt, 02_02.txt, 02_03.txt, 02_04.txt, 02_05.txt, 02_06.txt, 02_07.txt, 02_08.txt, 02_09.txt, 02_10.txt, 03_01.txt, 03_02.txt, 03_03.txt, 03_04.txt, 03_05.txt, 03_06.txt, 03_07.txt, 03_08.txt, 03_09.txt, 03_10.txt
Subtask 4 sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sample_05.txt, 01_01.txt, 01_02.txt, 01_03.txt, 01_04.txt, 01_05.txt, 01_06.txt, 01_07.txt, 01_08.txt, 01_09.txt, 01_10.txt, 02_01.txt, 02_02.txt, 02_03.txt, 02_04.txt, 02_05.txt, 02_06.txt, 02_07.txt, 02_08.txt, 02_09.txt, 02_10.txt, 03_01.txt, 03_02.txt, 03_03.txt, 03_04.txt, 03_05.txt, 03_06.txt, 03_07.txt, 03_08.txt, 03_09.txt, 03_10.txt, 04_01.txt, 04_02.txt, 04_03.txt, 04_04.txt, 04_05.txt, 04_06.txt, 04_07.txt, 04_08.txt, 04_09.txt, 04_10.txt
Case Name Status Exec Time Memory
01_01.txt AC 1 ms 3636 KiB
01_02.txt AC 1 ms 3576 KiB
01_03.txt AC 1 ms 3728 KiB
01_04.txt AC 1 ms 3732 KiB
01_05.txt AC 1 ms 3516 KiB
01_06.txt AC 1 ms 3520 KiB
01_07.txt AC 1 ms 3536 KiB
01_08.txt AC 1 ms 3536 KiB
01_09.txt AC 1 ms 3544 KiB
01_10.txt AC 1 ms 3612 KiB
02_01.txt AC 1 ms 3568 KiB
02_02.txt AC 1 ms 3512 KiB
02_03.txt AC 1 ms 3532 KiB
02_04.txt AC 1 ms 3608 KiB
02_05.txt AC 1 ms 3428 KiB
02_06.txt AC 1 ms 3560 KiB
02_07.txt AC 1 ms 3524 KiB
02_08.txt AC 1 ms 3768 KiB
02_09.txt AC 1 ms 3576 KiB
02_10.txt AC 1 ms 3760 KiB
03_01.txt AC 1 ms 3572 KiB
03_02.txt AC 1 ms 3620 KiB
03_03.txt AC 1 ms 3672 KiB
03_04.txt AC 1 ms 3740 KiB
03_05.txt AC 1 ms 3632 KiB
03_06.txt AC 2 ms 4604 KiB
03_07.txt AC 5 ms 5340 KiB
03_08.txt AC 2 ms 4256 KiB
03_09.txt AC 5 ms 5700 KiB
03_10.txt AC 50 ms 24660 KiB
04_01.txt AC 1 ms 3624 KiB
04_02.txt AC 1 ms 3648 KiB
04_03.txt AC 7 ms 6692 KiB
04_04.txt AC 6 ms 5936 KiB
04_05.txt AC 28 ms 16016 KiB
04_06.txt AC 53 ms 24884 KiB
04_07.txt AC 53 ms 26432 KiB
04_08.txt AC 66 ms 29504 KiB
04_09.txt AC 77 ms 34672 KiB
04_10.txt AC 4095 ms 1043400 KiB
sample_01.txt AC 1 ms 3532 KiB
sample_02.txt AC 1 ms 3644 KiB
sample_03.txt AC 1 ms 3544 KiB
sample_04.txt AC 6 ms 6248 KiB
sample_05.txt AC 9 ms 7312 KiB