关于非暴力解法的注意事项
查看原帖
关于非暴力解法的注意事项
1455419
timetinker楼主2025/1/13 01:21

在楼主花了45分钟理解完那个非暴力的题解之后,楼主又花了45分钟搓了一个出来,代码是这样的

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int s1,s2,s3;
    int temp;
    cin >> s1 >> s2 >> s3;
    if(s1>s2)
    {
        temp = s1;
        s1 = s2;
        s2 = temp;
    }
    int mid12down,mids3down;
    int maxnum = 0;
    mid12down = (s1 + s2) / 2 + 1;
    mids3down = (s3 + 1) / 2;
    if(s3 <s2-s1)
    {
        maxnum = 1 + s1 + s3;
    }
    else
    {
        maxnum = mid12down + mids3down;
    }
    cout << maxnum;
    return 0;
}

但是只有60分,在重新看了一下题解之后发现有一个点需要注意,就是必须要排序使得s2是输入三个数里面最大的数字,s1是里面最小的数字,这样才能使中间数s3完全包裹住2~s1+s2。题解这里一笔带过了,把楼主错误挂上来警示后人

2025/1/13 01:21
加载中...