差28分求助大佬 tle7个
查看原帖
差28分求助大佬 tle7个
1366067
wei_learn_city楼主2024/7/24 15:29

「EZEC-3」造房子

题目背景

pigstd 要去造房子了。

题目描述

pigstd 有 aa 个 A 材料和 bb 个 B 材料,造第 ii 层楼需要 ii 个 A 材料与 ii 个 B 材料。

但是 pigstd 觉得房子不够高,于是他拿出了 cc 块钱,每块钱都可以用来买 11 个 A 材料或者 11 个 B 材料。

现在 pigstd 想知道,他最多能建多少层楼的房子。

输入格式

第一行三个整数 a,b,ca,b,c。

输出格式

一行一个整数,表示 pigstd 最多能建多少层楼的房子。

样例 #1

样例输入 #1

1 2 3

样例输出 #1

2

样例 #2

样例输入 #2

1 5 3

样例输出 #2

2

提示

【样例 1 说明】

pigstd 买 22 个 A 材料和 11 个 B 材料后就有 33 个 A 材料和 33 个 B 材料,最多可以建 22 层楼的房子。

(花费 1+21+2 个 A 材料和 1+21+2 个 B 材料)

【样例 2 说明】

pigstd 买 33 个 A 材料后就有 44 个 A 材料和 55 个 B 材料,最多可以建 22 层楼的房子。

(花费 1+21+2 个 A 材料和 1+21+2 个 B 材料)

【数据规模与约定】

对于 100%100\% 的数据,0≤a,b,c≤10120 \le a,b,c \le 10^{12}。

数据点编号满足的条件
1−4,221-4,22c=0c = 0
5−8,215-8,21a,b,c≤103a,b,c \le 10^{3}
9−129-12a,b,c≤106a,b,c \le 10^{6}
13−2013-20a,b,c≤1012a,b,c \le 10^{12}
#include<bits/stdc++.h>
using namespace std;
long long cnt,sum,s;
int main()
{
    long long a,b,c;
    cin>>a>>b>>c;
    while(a>b&&c!=0)
    {
        b++;
        c--;
    }
    while(a<b&&c!=0)
    {
        a++;
        c--;
    }
    while(a==b&&c!=0)
    {
        if(c%2==0)
        {
            a+=c/2;
            b+=c/2;
            c=0;
        }else
        {
            a+=c/2;
            b+=c-c/2;
            c=0;
        }
    }
    long long d=min(a,b);
    cout<<(floor((sqrt(1+8*d)-1)/2))<<endl;
}
2024/7/24 15:29
加载中...