結果

問題 No.91 赤、緑、青の石
ユーザー かに
提出日時 2015-12-05 22:14:22
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 1,101 bytes
コンパイル時間 1,395 ms
コンパイル使用メモリ 159,840 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-09-14 14:31:31
合計ジャッジ時間 2,375 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 16 WA * 12
権限があれば一括ダウンロードができます

ソースコード

diff #

#define _USE_MATH_DEFINES
#define _CRT_SECURE_NO_WARNINGS
#include "bits/stdc++.h"
#define rep(i,n) for(int i = 0;i < n;i++)
#define REP(i,n,k) for(int i = n;i < k;i++)
#define P(p) cout<<(p)<<endl;
#define pi 3.1415926535
using namespace std;
typedef long long ll;
int dx[] = { 0, 1, 0, -1 };
int dy[] = { -1, 0, 1, 0 };

unsigned long long sttoi(std::string str) {
	unsigned long long ret;
	std::stringstream ss; ss << str;
	ss >> ret;
	return ret;
}

bool isPrime(ll n){
	if (n % 2 == 0)return false;
	for (ll i = 3; i*i <= n; i += 2){
		if (n%i == 0)return false;
	}
	return true;
}

void solve() {
	int s[3];
	cin >> s[0] >> s[1] >> s[2];
	int left = 0, right = 100000000;
	while (left < right){
		int mid = (left + right) / 2;
		if (mid == 0)break;
		int need = 0;
		int amari = 0;
		rep(i, 3){
			if (s[i] < mid){
				need += mid - s[i];
			}
			else{
				amari += ((s[i] - mid)/2);
			}
		}
		int gap = need - amari;
		if (gap < 0){
			left = mid+1;
		}
		else if(gap > 0){
			right = mid;
		}
		else{
			P(mid);
			return;
		}
	}
	P((left + right) / 2);
}

int main() {
	solve();
	return 0;
}
0