提出 #577650


ソースコード 拡げる

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

int main() {
  int n;
  string s;
  cin >> n >> s;
  int a[n+1],b[n+1],x=0,y=0;
  memset(a,0,sizeof(a));
  memset(b,0,sizeof(b));
  for(int i=0; i<n; i++) {
    a[i+1]+=a[i]+(s[i]=='>');
    x+=(s[i]=='>');
  }
  for(int i=n-1; i>=0; i--) {
    b[n-i]+=b[n-i-1]+(s[i]=='<');
    y+=(s[i]=='<');
  }
  int ans=0;
  for(int i=0; i<n; i++) {
    int res=0;
    int l=i+1,r=n-i;
    if(s[i]=='>') {
      if(a[l]-1>=b[r]) {
        int d=lower_bound(a,a+n,a[l]-b[r])-a;
        res+=x-a[d-1]+b[n-d];
      } else {
        int d=lower_bound(b,b+n,b[r]-a[l]+1)-b;
        res+=y-b[d-1]+a[n-d];
      }
    } else {
      if(b[r]-1>=a[l]) {
        int d=lower_bound(b,b+n,b[r]-a[l])-b;
        res+=y-b[d-1]+a[n-d];
      } else {
        int d=lower_bound(a,a+n,a[l]-b[r]+1)-a;
        res+=x-a[d-1]+b[n-d];
      }
    }
    ans=max(ans,res);
  }
  cout << ans << endl;
  return 0;
}

提出情報

提出日時
問題 D - Line Gimmick
ユーザ woodpecker
言語 C++ (G++ 4.6.4)
得点 100
コード長 972 Byte
結果 AC
実行時間 47 ms
メモリ 1964 KiB

ジャッジ結果

セット名 All
得点 / 配点 100 / 100
結果
AC × 29
セット名 テストケース
All 00_sample_00, 00_sample_01, 00_sample_02, 00_sample_03, 10_simple_small_000, 10_simple_small_001, 10_simple_small_002, 10_simple_small_003, 10_simple_small_004, 11_simple_med_000, 11_simple_med_001, 11_simple_med_002, 11_simple_med_003, 11_simple_med_004, 12_simple_large_000, 12_simple_large_001, 12_simple_large_002, 12_simple_large_003, 12_simple_large_004, 21_answer_med_000, 21_answer_med_001, 21_answer_med_002, 21_answer_med_003, 21_answer_med_004, 22_answer_large_000, 22_answer_large_001, 22_answer_large_002, 22_answer_large_003, 22_answer_large_004
ケース名 結果 実行時間 メモリ
00_sample_00 AC 29 ms 1044 KiB
00_sample_01 AC 26 ms 936 KiB
00_sample_02 AC 27 ms 1048 KiB
00_sample_03 AC 27 ms 1040 KiB
10_simple_small_000 AC 26 ms 976 KiB
10_simple_small_001 AC 28 ms 1044 KiB
10_simple_small_002 AC 26 ms 1044 KiB
10_simple_small_003 AC 28 ms 1048 KiB
10_simple_small_004 AC 28 ms 1040 KiB
11_simple_med_000 AC 28 ms 1040 KiB
11_simple_med_001 AC 28 ms 1044 KiB
11_simple_med_002 AC 29 ms 928 KiB
11_simple_med_003 AC 27 ms 1036 KiB
11_simple_med_004 AC 27 ms 1044 KiB
12_simple_large_000 AC 37 ms 1448 KiB
12_simple_large_001 AC 37 ms 1448 KiB
12_simple_large_002 AC 47 ms 1960 KiB
12_simple_large_003 AC 43 ms 1832 KiB
12_simple_large_004 AC 43 ms 1956 KiB
21_answer_med_000 AC 43 ms 1836 KiB
21_answer_med_001 AC 46 ms 1964 KiB
21_answer_med_002 AC 45 ms 1960 KiB
21_answer_med_003 AC 38 ms 1560 KiB
21_answer_med_004 AC 44 ms 1872 KiB
22_answer_large_000 AC 40 ms 1704 KiB
22_answer_large_001 AC 45 ms 1964 KiB
22_answer_large_002 AC 39 ms 1708 KiB
22_answer_large_003 AC 40 ms 1708 KiB
22_answer_large_004 AC 47 ms 1952 KiB