Submission #1967032
Source Code Expand
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
#define ll long long
const int MOD=1e9+7;
ll ans;
int n;
char a[60],b[60];
void dfs(int cnt,int flag,ll sum)
{
if(cnt==n)
{
ans=(ans+sum)%MOD;
return ;
}
if(cnt+1<n&&a[cnt]==a[cnt+1]&&b[cnt]==b[cnt+1])
{
if(!flag)
dfs(cnt+2,2,sum*6%MOD);
else if(flag==1)
dfs(cnt+2,2,sum*2%MOD);
else
dfs(cnt+2,2,sum*3%MOD);
}
if(a[cnt]==b[cnt])
{
if(!flag)
dfs(cnt+1,1,sum*3%MOD);
else if(flag==1)
dfs(cnt+1,1,sum*2%MOD);
else
dfs(cnt+1,1,sum%MOD);
}
}
int main()
{
scanf("%d%s%s",&n,a,b);
dfs(0,0,1);
printf("%lld\n",ans);
return 0;
}
Submission Info
Submission Time
2018-01-13 16:58:27+0900
Task
D - Coloring Dominoes
User
vjudge1
Language
C++14 (GCC 5.4.1)
Score
400
Code Size
806 Byte
Status
AC
Exec Time
1 ms
Memory
256 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:39:27: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%s%s",&n,a,b);
^
Judge Result
Set Name
Sample
All
Score / Max Score
0 / 0
400 / 400
Status
Set Name
Test Cases
Sample
sample1.txt, sample2.txt, sample3.txt
All
sample1.txt, sample2.txt, sample3.txt, 1.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 2.txt, 20.txt, 21.txt, 22.txt, 3.txt, 4.txt, 5.txt, 6.txt, 7.txt, 8.txt, 9.txt, sample1.txt, sample2.txt, sample3.txt
Case Name
Status
Exec Time
Memory
1.txt
AC
1 ms
256 KB
10.txt
AC
1 ms
256 KB
11.txt
AC
1 ms
256 KB
12.txt
AC
1 ms
256 KB
13.txt
AC
1 ms
256 KB
14.txt
AC
1 ms
256 KB
15.txt
AC
1 ms
256 KB
16.txt
AC
1 ms
256 KB
17.txt
AC
1 ms
256 KB
18.txt
AC
1 ms
256 KB
19.txt
AC
1 ms
256 KB
2.txt
AC
1 ms
256 KB
20.txt
AC
1 ms
256 KB
21.txt
AC
1 ms
256 KB
22.txt
AC
1 ms
256 KB
3.txt
AC
1 ms
256 KB
4.txt
AC
1 ms
256 KB
5.txt
AC
1 ms
256 KB
6.txt
AC
1 ms
256 KB
7.txt
AC
1 ms
256 KB
8.txt
AC
1 ms
256 KB
9.txt
AC
1 ms
256 KB
sample1.txt
AC
1 ms
256 KB
sample2.txt
AC
1 ms
256 KB
sample3.txt
AC
1 ms
256 KB