csustoj 2022

发布于 2020-10-15  96 次阅读


#include<iostream>
using namespace std;
int main()
{
    long long n, k;
    cin >> n >> k;
    long long a = n * 2 - 1;
    long long ans = 1;
    long long mid = (a + 3) / 2;
    long long maxa;
    long long d = abs(k - mid);
    if (n % 2 == 1) {
        maxa = mid / 2 -1;
        ans = maxa - d / 2;
    }
    else {
        maxa = mid / 2;
        ans = maxa - (d+1) / 2;
    }
    if (ans >= 0)cout << ans;
    else cout << 0;
    return 0;
}

时间复杂度上已经O(1)了,但是代码还有很大可改进空间。写的太丑了orz


夢に僕らで帆を張って 来るべき日のために夜を越え。