結果

問題 No.110 しましまピラミッド
ユーザー a5uaa5ua
提出日時 2014-12-24 01:35:19
言語 C++11
(gcc 11.4.0)
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 785 bytes
コンパイル時間 581 ms
コンパイル使用メモリ 67,736 KB
実行使用メモリ 4,500 KB
最終ジャッジ日時 2023-08-30 03:46:33
合計ジャッジ時間 1,771 ms
ジャッジサーバーID
(参考情報)
judge11 / judge12
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
4,376 KB
testcase_01 AC 2 ms
4,380 KB
testcase_02 AC 1 ms
4,376 KB
testcase_03 AC 1 ms
4,376 KB
testcase_04 AC 1 ms
4,380 KB
testcase_05 AC 1 ms
4,380 KB
testcase_06 AC 1 ms
4,376 KB
testcase_07 AC 2 ms
4,380 KB
testcase_08 AC 2 ms
4,380 KB
testcase_09 AC 2 ms
4,380 KB
testcase_10 AC 2 ms
4,380 KB
testcase_11 AC 1 ms
4,380 KB
testcase_12 AC 1 ms
4,380 KB
testcase_13 AC 1 ms
4,376 KB
testcase_14 AC 1 ms
4,380 KB
testcase_15 AC 2 ms
4,500 KB
testcase_16 AC 2 ms
4,380 KB
testcase_17 AC 1 ms
4,380 KB
testcase_18 AC 2 ms
4,376 KB
testcase_19 AC 2 ms
4,380 KB
testcase_20 AC 2 ms
4,376 KB
testcase_21 AC 2 ms
4,380 KB
testcase_22 AC 1 ms
4,380 KB
testcase_23 AC 1 ms
4,380 KB
testcase_24 AC 2 ms
4,376 KB
testcase_25 AC 2 ms
4,380 KB
testcase_26 AC 2 ms
4,376 KB
testcase_27 AC 1 ms
4,376 KB
testcase_28 AC 1 ms
4,376 KB
testcase_29 AC 1 ms
4,376 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

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

using namespace std;

bool choose_block(int &top, vector<int> &b)
{
	while (!b.empty() && b.back() >= top) {
		b.pop_back();
	}
	if (b.empty()) {
		return false;
	}
	top = b.back();
	b.pop_back();
	return true;
}

int simulate(vector<int> b1, vector<int> b2)
{
	int ans = 0;
	int top = 1 << 30;
	for (;;) {
		if (!choose_block(top, b1)) {
			break;
		}
		++ans;
		if (!choose_block(top, b2)) {
			break;
		}
		++ans;
	}
	return ans;
}

int main()
{
	int Nw;
	cin >> Nw;
	vector<int> W(Nw);
	for (auto &x : W) {
		cin >> x;
	}
	int Nb;
	cin >> Nb;
	vector<int> B(Nb);
	for (auto &x : B) {
		cin >> x;
	}
	sort(begin(W), end(W));
	sort(begin(B), end(B));
	int ans = max(simulate(W, B), simulate(B, W));
	cout << ans << endl;
}
0