結果

問題 No.110 しましまピラミッド
ユーザー krotonkroton
提出日時 2014-12-23 19:08:14
言語 C++11
(gcc 13.3.0)
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 811 bytes
コンパイル時間 1,302 ms
コンパイル使用メモリ 162,284 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2024-12-31 10:57:57
合計ジャッジ時間 2,248 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 26
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
 
int w_size, b_size;
int W[22], B[22];
 
int solve(int h, int last, int turn, int wk, int bk){
	if(turn == 0){
		if(wk >= w_size)return h;
		if(W[wk] < last){
			return solve(h + 1, W[wk], 1, wk + 1, bk);
		} else {
			return solve(h, last, 0, wk + 1, bk);
		}
	} else {
		if(bk >= b_size)return h;
		if(B[bk] < last){
			return solve(h + 1, B[bk], 0, wk, bk + 1);
		} else {
			return solve(h, last, 1, wk, bk + 1);
		}
	}
}
 
int main(){
	cin >> w_size;
	for(int i=0;i<w_size;i++)cin >> W[i];
 
	cin >> b_size;
	for(int i=0;i<b_size;i++)cin >> B[i];
 
	sort(W, W + w_size, greater<int>());
	sort(B, B + b_size, greater<int>());
 
	int res = 0;
	res = max(res, solve(0, 100, 0, 0, 0));
	res = max(res, solve(0, 100, 1, 0, 0));
 
	cout << res << endl;
	return 0;
}
0