提出 #272316


ソースコード 拡げる

#include <algorithm>
#include <vector>
#include <iostream>
#include <cstring>

using namespace std;

int N;
int R[3100];

int solve() {
  int res = 0;
  int dp[3100][2];
  int nxt[3100][2];
  dp[R[0]][0] = 1;
  dp[R[0]][1] = 1;
  for(int i = 0; i < N-1; ++i) {
    for(int j = 0; j < N; ++j) {
      nxt[j][0] = dp[j][0];
      nxt[j][1] = dp[j][1];
    }
    for(int j = 0; j < N; ++j) {
      if(R[i+1] < j && dp[j][0] != 0) {
        nxt[R[i+1]][1] = max(nxt[R[i+1]][1], dp[j][0] + 1);
      }
      if(R[i+1] > j && dp[j][1] != 0) {
        nxt[R[i+1]][0] = max(nxt[R[i+1]][0], dp[j][1] + 1);
      }
    }
    for(int j = 0; j < N; ++j)
      memcpy(dp[j], nxt[j], sizeof(int) * 2);
  }

  for(int j = 0; j < N; ++j) {
    res = max(res, max(dp[j][1], dp[j][0]));
  }
  if(res < 3)
    res = 0;
  return res;
}

int main() {
  cin >> N;
  for(int i = 0; i < N; ++i)
    cin >> R[i];
  for(int i = 0; i < N; ++i) {
    int v = 1000000;
    for(int j = 0; j < N; ++j)
      if(i <= R[j] && R[j] < v)
        v = R[j];
    for(int j = 0; j < N; ++j)
      if(R[j] == v)
        R[j] = i;
  }
  cout << solve() << endl;
  return 0;
}

提出情報

提出日時
問題 E - 常ならずグラフ
ユーザ aosuka
言語 C++ (G++ 4.6.4)
得点 0
コード長 1192 Byte
結果 WA
実行時間 288 ms
メモリ 1524 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 100
結果 AC
AC × 11
WA × 3
RE × 14
セット名 テストケース
Sample
All subtask1_corner_00.txt, subtask1_corner_01.txt, subtask1_corner_02.txt, subtask1_corner_03.txt, subtask1_manual_00.txt, subtask1_manual_01.txt, subtask1_manual_02.txt, subtask1_manual_03.txt, subtask1_manual_04.txt, subtask1_manual_05.txt, subtask1_manual_06.txt, subtask1_random_00.txt, subtask1_random_01.txt, subtask1_random_02.txt, subtask1_random_03.txt, subtask1_random_04.txt, subtask1_random_05.txt, subtask1_random_06.txt, subtask1_random_07.txt, subtask1_random_08.txt, subtask1_random_09.txt, subtask1_random_10.txt, subtask1_random_11.txt, subtask1_random_12.txt, subtask1_random_13.txt, subtask1_random_14.txt, subtask1_random_15.txt, subtask1_random_16.txt
ケース名 結果 実行時間 メモリ
subtask1_corner_00.txt AC 81 ms 796 KiB
subtask1_corner_01.txt AC 21 ms 932 KiB
subtask1_corner_02.txt AC 23 ms 924 KiB
subtask1_corner_03.txt AC 21 ms 920 KiB
subtask1_manual_00.txt RE 265 ms 800 KiB
subtask1_manual_01.txt RE 268 ms 804 KiB
subtask1_manual_02.txt RE 270 ms 924 KiB
subtask1_manual_03.txt RE 266 ms 920 KiB
subtask1_manual_04.txt AC 85 ms 1524 KiB
subtask1_manual_05.txt AC 21 ms 924 KiB
subtask1_manual_06.txt AC 22 ms 928 KiB
subtask1_random_00.txt AC 22 ms 924 KiB
subtask1_random_01.txt AC 22 ms 804 KiB
subtask1_random_02.txt RE 247 ms 800 KiB
subtask1_random_03.txt AC 84 ms 740 KiB
subtask1_random_04.txt AC 84 ms 800 KiB
subtask1_random_05.txt RE 267 ms 808 KiB
subtask1_random_06.txt RE 266 ms 924 KiB
subtask1_random_07.txt WA 83 ms 924 KiB
subtask1_random_08.txt WA 83 ms 924 KiB
subtask1_random_09.txt RE 287 ms 796 KiB
subtask1_random_10.txt RE 288 ms 796 KiB
subtask1_random_11.txt WA 97 ms 792 KiB
subtask1_random_12.txt RE 286 ms 924 KiB
subtask1_random_13.txt RE 282 ms 800 KiB
subtask1_random_14.txt RE 278 ms 804 KiB
subtask1_random_15.txt RE 280 ms 920 KiB
subtask1_random_16.txt RE 278 ms 800 KiB