QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#357196 | #404. Solitaire | piokemon# | 10 | 12ms | 4180kb | C++14 | 1.3kb | 2024-03-18 19:16:09 | 2024-03-18 19:16:10 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
string grid[3];
constexpr ll mod = 1e9+7;
pair<int,int> poz[17];
ll dp[(1<<17)+9];
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
cin >> grid[0];
cin >> grid[1];
cin >> grid[2];
int nr=0;
for (int x=0;x<3;x++){
for (int y=0;y<n;y++){
if (grid[x][y]=='x'){
poz[nr++]={x,y};
}
}
}
dp[(1<<nr)-1]=1;
for (int mask=(1<<nr)-2;mask>=0;mask--){
for (int x=0;x<nr;x++){
if (mask&(1<<x))grid[poz[x].first][poz[x].second]='o';
}
for (int x=0;x<nr;x++){
if (!(mask&(1<<x))){
bool mozna=0;
if (poz[x].first==1 && grid[0][poz[x].second]=='o' && grid[2][poz[x].second]=='o')mozna=1;
if (poz[x].second>=1 && poz[x].second<n-1 && grid[poz[x].first][poz[x].second-1]=='o' && grid[poz[x].first][poz[x].second+1]=='o')mozna=1;
if (mozna)dp[mask] = (dp[mask]+dp[mask | (1<<x)])%mod;
}
}
for (int x=0;x<nr;x++){
if (mask&(1<<x))grid[poz[x].first][poz[x].second]='x';
}
}
cout << dp[0] << '\n';
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 10
Accepted
Test #1:
score: 10
Accepted
time: 1ms
memory: 3640kb
input:
21 ooooxoooooxoooooxoooo oooxooooooooxxxxxooxo ooxooooooooooooooooxo
output:
319334400
result:
ok single line: '319334400'
Test #2:
score: 0
Accepted
time: 6ms
memory: 3792kb
input:
27 oxoooxooooooooooooooooooooo ooooooxxxxoooooxoxooooxoooo oooxooxooxoooxoooxoooooxooo
output:
188603933
result:
ok single line: '188603933'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3704kb
input:
20 oooooooooxooooxoooxo oxoxoooooooxooooooxo ooooooooxooooooooooo
output:
40320
result:
ok single line: '40320'
Test #4:
score: 0
Accepted
time: 12ms
memory: 4136kb
input:
13 ooxoxoxooxooo xoxxxoxxxooxo ooooxoxoxoxoo
output:
22599513
result:
ok single line: '22599513'
Test #5:
score: 0
Accepted
time: 12ms
memory: 4060kb
input:
13 oxoxooxooxooo xooxxxxoxoxxx ooxooooxoxooo
output:
17662907
result:
ok single line: '17662907'
Test #6:
score: 0
Accepted
time: 12ms
memory: 4060kb
input:
11 oxoxoxoxoxo xxxxoxoxoxo oxoxoxooxoo
output:
891195994
result:
ok single line: '891195994'
Test #7:
score: 0
Accepted
time: 12ms
memory: 4132kb
input:
14 ooxoooxoxoooxo xoxxooooxxxoxx oooxoxooooxoxo
output:
549439514
result:
ok single line: '549439514'
Test #8:
score: 0
Accepted
time: 12ms
memory: 4132kb
input:
14 ooxoooooxooxoo xxxxxxoxxoxoox oxoooooxoxoooo
output:
278974156
result:
ok single line: '278974156'
Test #9:
score: 0
Accepted
time: 12ms
memory: 4144kb
input:
11 ooxooxoxoxo xxxxxoooxox oxoxoxoxoxo
output:
591208466
result:
ok single line: '591208466'
Test #10:
score: 0
Accepted
time: 11ms
memory: 4156kb
input:
11 ooxoxoxooxo xxoooxxxxxx ooxoxoxoxoo
output:
966753075
result:
ok single line: '966753075'
Test #11:
score: 0
Accepted
time: 11ms
memory: 4180kb
input:
15 oooxooooxooxooo oxooxxoooxxxxxx ooooxoxoooxoxoo
output:
727472313
result:
ok single line: '727472313'
Test #12:
score: 0
Accepted
time: 12ms
memory: 4116kb
input:
10 oxoxooxooo xxxxxoxxxx oxoxoxoxoo
output:
377955629
result:
ok single line: '377955629'
Subtask #2:
score: 0
Runtime Error
Test #13:
score: 0
Runtime Error
input:
880 ooxooooooxoxoooxoxoooooxooxooooxoxooooooooooooooxooooooxoxooooxooooxoxooooooxoxooooooooooxoxooooxooxooxoooooooooooxoxoooooxoooooxoxoxooxoooxooxooooxooooxoxoxoooxoooooxoooxooxoxoooooooxooooxooooooxooooxoxooxoooooxoxooooxooxooooooooooooooxoooooooooooxooooooooooooooxooooxoxoxooooooxooooooooxooooxoo...
output:
result:
Subtask #3:
score: 0
Runtime Error
Test #38:
score: 0
Runtime Error
input:
27 oxooooxooooooxoooxoooooxoxo xxooxooooxxxoxoooxooxxxxxoo ooxoxoxoxoooxoxooooxoxooxoo
output:
result:
Subtask #4:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #3:
0%
Subtask #5:
score: 0
Skipped
Dependency #1:
100%
Accepted
Dependency #2:
0%