QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#357444#404. Solitaireuser12340 0ms0kbC++141.8kb2024-03-18 21:17:512024-03-18 21:17:52

Judging History

This is the latest submission verdict.

  • [2024-03-18 21:17:52]
  • Judged
  • Verdict: 0
  • Time: 0ms
  • Memory: 0kb
  • [2024-03-18 21:17:51]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
int n;
//vector <vector<bool>> pusty(3, vector<bool>(30));
vector <vector<bool>> poczatkowy(3, vector<bool>(30));
const int mod = 1000000007;
void wczytaj() {
    cin >> n;
    string a; cin >> a;
    for (int i = 0; i < n; i++) poczatkowy[0][i] = (a[i] == 'o');
    cin >> a;
    for (int i = 0; i < n; i++) poczatkowy[1][i] = (a[i] == 'o');
    cin >> a;
    for (int i = 0; i < n; i++) poczatkowy[2][i] = (a[i] == 'o');
}
int znajdz_wynik(vector <vector<bool>> plansza) {
    bool czy_kazdy_pelny = false;
    long long wynik = 0;
    vector <vector<bool>> plansza_kopiowana;
    for (int w = 0; w < 3; w++) {
        for (int i = 0; i < n; i++) {
            czy_kazdy_pelny = czy_kazdy_pelny + !plansza[w][i];
            if (plansza[w][i]) continue;
            if (w == 1 && plansza[0][i] && plansza[2][i]) {
                plansza_kopiowana = plansza;
                plansza_kopiowana[w][i] = true;
                wynik += znajdz_wynik(plansza_kopiowana);
            }
            else if (i > 0 && i < n - 1 && plansza[w][i - 1] && plansza[w][i + 1]) {
                plansza_kopiowana = plansza;
                plansza_kopiowana[w][i] = true;
                wynik += znajdz_wynik(plansza_kopiowana);
            }
        }
    }
    if (!czy_kazdy_pelny) return 1;
    return wynik % mod;
}
bool czy_pusta(vector <vector<bool>> plansza) {
    for (int w = 0; w < 3; w++) {
        for (int i = 0; i < n; i++) {
            if (plansza[w][i]) return false;
        }
    }
    return true;
}
int main() {
    //ios_base::sync_with_stdio(0);
    //cin.tie(0);
    wczytaj();
    //if (czy_pusta(poczatkowy)) {
        //cout << 0;
        //return 0;
    //}
    cout << znajdz_wynik(poczatkowy);
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Time Limit Exceeded

Test #1:

score: 0
Time Limit Exceeded

input:

21
ooooxoooooxoooooxoooo
oooxooooooooxxxxxooxo
ooxooooooooooooooooxo

output:


result:


Subtask #2:

score: 0
Runtime Error

Test #13:

score: 0
Runtime Error

input:

880
ooxooooooxoxoooxoxoooooxooxooooxoxooooooooooooooxooooooxoxooooxooooxoxooooooxoxooooooooooxoxooooxooxooxoooooooooooxoxoooooxoooooxoxoxooxoooxooxooooxooooxoxoxoooxoooooxoooxooxoxoooooooxooooxooooooxooooxoxooxoooooxoxooooxooxooooooooooooooxoooooooooooxooooooooooooooxooooxoxoxooooooxooooooooxooooxoo...

output:


result:


Subtask #3:

score: 0
Time Limit Exceeded

Test #38:

score: 0
Time Limit Exceeded

input:

27
oxooooxooooooxoooxoooooxoxo
xxooxooooxxxoxoooxooxxxxxoo
ooxoxoxoxoooxoxooooxoxooxoo

output:


result:


Subtask #4:

score: 0
Skipped

Dependency #1:

0%

Subtask #5:

score: 0
Skipped

Dependency #1:

0%