提出 #1133122


ソースコード 拡げる

#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>
#include <array>
#include <chrono>
#include <condition_variable>
#include <forward_list>
#include <future>
#include <initializer_list>
#include <mutex>
#include <random>
#include <ratio>
#include <regex>
#include <system_error>
#include <thread>
#include <tuple>
#include <typeindex>
#include <type_traits>
#include <unordered_map>
#include <unordered_set>
using namespace std;

long long n;
long long lastx;
long long mp[300];

long long robot(long long x) {
  long long caseN;
  if (x>=lastx) {
    caseN = 1;
  } else if (mp[x+1]>0 && mp[x+2]>0) {
    caseN = (robot(x+2)*(n-mp[x+2]+1)*2)%1000000007;
  } else if (mp[x+1]>0 && !(mp[x+2]>0)) {
    caseN = (robot(x+2)*(n-mp[x+1]+1))%1000000007;
  } else if (!(mp[x+1]>0) && mp[x+2]>0) {
    caseN = (robot(x+2)*(n-mp[x+2]+1))%1000000007;
  } else if (!(mp[x+1]>0) && !(mp[x+2]>0)) {
    caseN = robot(x+1)%1000000007;
  }
  return caseN%1000000007;
}

int main(){
  cin >> n;
  long long lastpoint = -1;
  for (long long i=0;i<n;i++) {
    long long a;
    cin >> a;
    if (a > lastpoint) {
      a = lastpoint+2;
    } else if (a==lastpoint) {
      mp[lastpoint] = 0; mp[lastpoint-1]=i;
      a=lastpoint+1;
    } else if (a < lastpoint) {
      mp[lastpoint-2] = i;
    }
    lastpoint = a;
    mp[a] = i+1;
    if (i == n-1) lastx = a;
  }
  long long ans = robot(0)%1000000007;
  cout << ans << endl;
}

提出情報

提出日時
問題 A - Robot Racing
ユーザ elta19371277
言語 C++14 (GCC 5.4.1)
得点 0
コード長 2042 Byte
結果 RE
実行時間 98 ms
メモリ 256 KiB

ジャッジ結果

セット名 Sample Subtask All
得点 / 配点 0 / 0 0 / 500 0 / 400
結果
AC × 3
WA × 1
AC × 10
WA × 4
AC × 10
WA × 15
RE × 3
セット名 テストケース
Sample 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt
Subtask 0_00.txt, 0_01.txt, 0_02.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 2_00.txt, 2_01.txt, 2_02.txt, 2_03.txt, 2_04.txt, 2_05.txt, 2_06.txt, 2_07.txt, 2_08.txt, 2_09.txt, 2_10.txt, 2_11.txt, 2_12.txt
ケース名 結果 実行時間 メモリ
0_00.txt AC 1 ms 256 KiB
0_01.txt AC 1 ms 256 KiB
0_02.txt AC 1 ms 256 KiB
0_03.txt WA 1 ms 256 KiB
1_00.txt AC 1 ms 256 KiB
1_01.txt AC 1 ms 256 KiB
1_02.txt AC 1 ms 256 KiB
1_03.txt WA 1 ms 256 KiB
1_04.txt AC 1 ms 256 KiB
1_05.txt AC 1 ms 256 KiB
1_06.txt WA 1 ms 256 KiB
1_07.txt WA 1 ms 256 KiB
1_08.txt WA 1 ms 256 KiB
1_09.txt AC 1 ms 256 KiB
1_10.txt AC 1 ms 256 KiB
2_00.txt WA 1 ms 256 KiB
2_01.txt WA 1 ms 256 KiB
2_02.txt WA 1 ms 256 KiB
2_03.txt WA 1 ms 256 KiB
2_04.txt WA 1 ms 256 KiB
2_05.txt WA 1 ms 256 KiB
2_06.txt RE 98 ms 256 KiB
2_07.txt RE 95 ms 256 KiB
2_08.txt WA 1 ms 256 KiB
2_09.txt RE 96 ms 256 KiB
2_10.txt WA 1 ms 256 KiB
2_11.txt WA 1 ms 256 KiB
2_12.txt WA 1 ms 256 KiB