提出 #51655276


ソースコード 拡げる

#include <bits/stdc++.h>
using namespace std;

int main() {
  int N; cin >> N;
  vector<int> P(N);
  for (int i = 0; i < N; i++) {
    cin >> P.at(i);
    P.at(i)--;
  }
  string S; cin >> S;
  
  queue<string> q;
  q.push(S);
  while (q.front().find('?') != string::npos) {
    string s = q.front(); q.pop();
    int index = s.find_first_of('?');
    s.at(index) = 'L'; q.push(s);
    s.at(index) = 'R'; q.push(s);
  }
  
  unsigned long long ans = 0;
  
  while (!q.empty()) { // ある利き手の組み合わせ
    string domHands = q.front(); q.pop();
    vector<bool> spoons(N, true); 
    for (int i = 0; i < N; i++) { // 一人ずつ取ってく
      int p = P.at(i);
      bool leftSpoon = spoons.at(p), rightSpoon = spoons.at((p + 1) % N);
      if (leftSpoon && rightSpoon) { // スプーン2つアリ
        if (domHands.at(p) == 'L') spoons.at(p) = false;
        else spoons.at((p + 1) % N) = false;
      }
      else if (leftSpoon) { // 左だけアリ
        spoons.at(p) = false;
      }
      else if (rightSpoon) { // 右だけアリ
        spoons.at((p + 1) % N) = false;
      }
      else { // スプーンなし
        break;
      }
      if (i == N - 1) ans = (ans + 1) % 998244353;
    }
  }
  
  cout << ans % 998244353 << endl;
}

提出情報

提出日時
問題 A - Spoon Taking Problem
ユーザ YuTo_QC
言語 C++ 20 (gcc 12.2)
得点 0
コード長 1313 Byte
結果 RE
実行時間 2427 ms
メモリ 3632820 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 400
結果
AC × 3
AC × 18
TLE × 3
RE × 13
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 1 ms 3528 KiB
00_sample_01.txt AC 1 ms 3468 KiB
00_sample_02.txt AC 1 ms 3616 KiB
01_test_00.txt AC 1 ms 3400 KiB
01_test_01.txt AC 13 ms 7688 KiB
01_test_02.txt AC 1 ms 3616 KiB
01_test_03.txt AC 1 ms 3556 KiB
01_test_04.txt AC 2 ms 4080 KiB
01_test_05.txt AC 1 ms 3472 KiB
01_test_06.txt AC 1 ms 3536 KiB
01_test_07.txt AC 49 ms 20188 KiB
01_test_08.txt AC 4 ms 4600 KiB
01_test_09.txt AC 1 ms 3504 KiB
01_test_10.txt AC 1 ms 3492 KiB
01_test_11.txt AC 1 ms 3528 KiB
01_test_12.txt AC 1 ms 3480 KiB
01_test_13.txt AC 1 ms 3548 KiB
01_test_14.txt AC 1 ms 3508 KiB
01_test_15.txt RE 1990 ms 3630720 KiB
01_test_16.txt RE 1957 ms 3632388 KiB
01_test_17.txt RE 1877 ms 3631480 KiB
01_test_18.txt RE 1909 ms 3631828 KiB
01_test_19.txt TLE 2427 ms 3631224 KiB
01_test_20.txt TLE 2418 ms 3622292 KiB
01_test_21.txt RE 1873 ms 3632088 KiB
01_test_22.txt RE 1856 ms 3631288 KiB
01_test_23.txt RE 2089 ms 3632204 KiB
01_test_24.txt RE 2182 ms 3631940 KiB
01_test_25.txt TLE 2421 ms 3620700 KiB
01_test_26.txt RE 2122 ms 3632704 KiB
01_test_27.txt RE 1903 ms 3632276 KiB
01_test_28.txt RE 1938 ms 3632820 KiB
01_test_29.txt RE 2158 ms 3632384 KiB
01_test_30.txt RE 2027 ms 3632796 KiB