Submission

Status:

[P][P][P][P][P][P][P][PP][PP][PP]

Subtask/Task Score:

{10/10}{10/10}{10/10}{10/10}{10/10}{10/10}{10/10}{10/10}{10/10}{10/10}

Score: 100

User: meme_boi2

Problemset: แปลงดอกไม้

Language: cpp

Time: 0.004 second

Submitted On: 2025-06-15 11:48:32

#include <bits/stdc++.h>
using namespace std;
#define int  long long
int k, n;
bool think(int mid){
    if(((k*mid)*(k*mid+1))/2 == n ){
        cout << mid;
        exit(0);
    }
    return (((k*mid)*(k*mid+1))>>1) <= n;
}
int32_t main(){
    cin.tie(nullptr)->sync_with_stdio(0);
    cin >> k >> n;
    if(k == 1 && n == 1){
        cout << 1 << '\n';
        return 0;
    }
    int l = 1, r = n;
    while(l <= r){
        int mid = (l+r)>>1;
        if(think(mid)){
            l = mid + 1;
        }else{
            r = mid - 1;
        }
    }
    cout << l;
}