提出 #577450


ソースコード 拡げる

#include <iostream>
#include <vector>
#include <string>
#include <vector>
using namespace std;

struct panel {
	int left, right;
	int dir;
	panel();
	panel(int l, int r, int d) {
		left = l;
		right = r;
		dir = d;
	}
};

bool pop(vector<panel> & vp, int pos) {
	if(vp[pos].dir == 0) return false;
	vp[vp[pos].left].right = vp[pos].right;
	vp[vp[pos].right].left = vp[pos].left;
	return true;
}

int main() {
	int n;
	string s;
	cin >> n >> s;
	vector<panel> v;
	v.push_back(panel(-1, 1, 0));
	for(int i = 0; i < s.size(); i++) {
		v.push_back(panel(i,i+2,s[i]=='<' ? -1 : 1));
	}
	v.push_back(panel(n, n+2, 0));
	int l, r;
	int res = 0;
	l = 1;
	r = n;
	while(l <= r) {
		int m = (l+r) / 2;
		int pos = m;
		int cnt = 0;
		vector<panel> vv = v;
		while(vv[pos].dir) {
			int nex = (vv[pos].dir + 1) ? vv[pos].right : vv[pos].left;
			pop(vv, pos);
			pos = nex;
			cnt++;
		}
		res = max(res, cnt);
		if(pos) {
			r = m-1;
		}
		else {
			l = m+1;
		}
	}
	cout << res << endl;
}

提出情報

提出日時
問題 D - Line Gimmick
ユーザ qu1temp1
言語 C++11 (GCC 4.8.1)
得点 100
コード長 1037 Byte
結果 AC
実行時間 54 ms
メモリ 3416 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 24 ms 928 KiB
00_sample_01 AC 23 ms 928 KiB
00_sample_02 AC 24 ms 804 KiB
00_sample_03 AC 23 ms 796 KiB
10_simple_small_000 AC 24 ms 928 KiB
10_simple_small_001 AC 24 ms 920 KiB
10_simple_small_002 AC 24 ms 928 KiB
10_simple_small_003 AC 25 ms 672 KiB
10_simple_small_004 AC 24 ms 796 KiB
11_simple_med_000 AC 24 ms 800 KiB
11_simple_med_001 AC 24 ms 920 KiB
11_simple_med_002 AC 24 ms 932 KiB
11_simple_med_003 AC 24 ms 924 KiB
11_simple_med_004 AC 24 ms 804 KiB
12_simple_large_000 AC 40 ms 2256 KiB
12_simple_large_001 AC 38 ms 2200 KiB
12_simple_large_002 AC 54 ms 3416 KiB
12_simple_large_003 AC 53 ms 3156 KiB
12_simple_large_004 AC 53 ms 3288 KiB
21_answer_med_000 AC 51 ms 3156 KiB
21_answer_med_001 AC 53 ms 3292 KiB
21_answer_med_002 AC 52 ms 3408 KiB
21_answer_med_003 AC 39 ms 2264 KiB
21_answer_med_004 AC 51 ms 3296 KiB
22_answer_large_000 AC 42 ms 2644 KiB
22_answer_large_001 AC 51 ms 3284 KiB
22_answer_large_002 AC 43 ms 2768 KiB
22_answer_large_003 AC 45 ms 2768 KiB
22_answer_large_004 AC 54 ms 3292 KiB