結果

問題 No.9 モンスターのレベル上げ
ユーザー lovablepleiadlovablepleiad
提出日時 2015-11-25 23:03:59
言語 C++11
(gcc 11.4.0)
結果
AC  
実行時間 571 ms / 5,000 ms
コード長 2,522 bytes
コンパイル時間 955 ms
コンパイル使用メモリ 95,092 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-06-23 23:16:47
合計ジャッジ時間 6,568 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
5,248 KB
testcase_01 AC 2 ms
5,376 KB
testcase_02 AC 571 ms
5,376 KB
testcase_03 AC 450 ms
5,376 KB
testcase_04 AC 237 ms
5,376 KB
testcase_05 AC 156 ms
5,376 KB
testcase_06 AC 54 ms
5,376 KB
testcase_07 AC 2 ms
5,376 KB
testcase_08 AC 71 ms
5,376 KB
testcase_09 AC 551 ms
5,376 KB
testcase_10 AC 2 ms
5,376 KB
testcase_11 AC 456 ms
5,376 KB
testcase_12 AC 343 ms
5,376 KB
testcase_13 AC 384 ms
5,376 KB
testcase_14 AC 557 ms
5,376 KB
testcase_15 AC 509 ms
5,376 KB
testcase_16 AC 9 ms
5,376 KB
testcase_17 AC 325 ms
5,376 KB
testcase_18 AC 271 ms
5,376 KB
testcase_19 AC 5 ms
5,376 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
main.cpp:2:9: warning: #pragma once in main file
    2 | #pragma once
      |         ^~~~
main.cpp:3:9: warning: #pragma once in main file
    3 | #pragma once
      |         ^~~~

ソースコード

diff #

#pragma once
#pragma once
#pragma once

#define _CRT_SECURE_NO_WARNINGS
#include <string>
#include <vector>
#include <algorithm>
#include <numeric>
#include <set>
#include <map>
#include <queue>
#include <iostream>
#include <sstream>
#include <cstdio>
#include <cmath>
#include <ctime>
#include <cstring>
#include <cctype>
#include <cassert>
#include <limits>
#include <functional>
#include <stack>
#include <array>
#include <fstream>
#include <deque>
#include <bitset>


#define REP(i,n) for(int (i) = 0;(i) < (n) ; ++(i))
#define REPS(a,i,n) for(int (i) = (a) ; (i) < (n) ; ++(i))
#if defined(_MSC_VER)||__cplusplus > 199711L
#define AUTO(r,v) auto r = (v)
#else
#define AUTO(r,v) typeof(v) r = (v)
#endif
#define ALL(c) (c).begin() , (c).end()
#define EACH(it,c) for(AUTO(it,(c).begin());it != (c).end();++it)
#define LL long long
#define int LL
#define inf  99999999
#define div 1000000007
#define QUICK_CIN ios::sync_with_stdio(false); cin.tie(0);
#define InitArr1(c,n) memset(&c[0],0,sizeof(int)*n)
#define InitArr2(c,n) memset(&c[0][0],0,sizeof(int)*n)

template<class T>
bool valid(T x, T w) { return 0 <= x&&x < w; }

int di[4] = { 1, -1, 0, 0 };
int dj[4] = { 0, 0, 1, -1 };

using namespace std;

//-----------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------

using P = pair<int, int>;

signed main()
{
	QUICK_CIN;
	//fstream cin("debug.txt");
	//ofstream cout("result.txt");

	int n;
	cin >> n;
	vector<int> a, b;

	REP(i, n) {
		int c;
		cin >> c;
		a.push_back(c);
	}

	REP(i, n) {
		int c;
		cin >> c;
		b.push_back(c / 2);
	}

	auto comp = [](P a, P b)
	{
		if (a.first > b.first) {
			return true;
		}
		else if (a.first == b.first) {
			return a.second >= b.second;
		}
		return false;
	};

	int min_n = inf;

	//first = レベル , second = 戦闘回数
	priority_queue<P, vector<P>, decltype(comp)> que(comp);


	for (int it = 0; it < n; ++it) {
		for (int i = 0; i < a.size(); ++i) {
			que.emplace(a[i], 0);
		}

		for (int ii = it,i = 0; i < b.size(); ++i,++ii) {
			ii %= b.size();

			auto now = que.top();
			que.pop();

			now.first += b[ii];
			now.second++;

			que.push(now);
		}

		int max_n = -1;
		while (!que.empty()) {
			auto x = que.top();
			que.pop();

			max_n = max(max_n, x.second);
		}

		min_n = min(min_n, max_n);

	}

	cout << min_n << endl;
}
0