CSES - Putka Open 2015 – 2/6 - Results
Submission details
Task:Pussit
Sender:
Submission time:2015-08-16 18:30:20 +0300
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.04 s1details
#20.05 s2details
#30.06 s3details

Code

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int ok(ll x, ll n, ll m, ll k){
    if (x>=n-1ll) return 1;
    n-=x;
    ll lol=m/n;
    ll add=(lol-1ll)*x;
    if (lol*n+add>=k) return 1;
    return 0;
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int tcs;
    cin>>tcs;
    for (int tc=0;tc<tcs;tc++){
        ll n,m,k;
        cin>>n>>m>>k;
        ll mv=n-1;
        if (ok(0, n, m, k)){
            cout<<k<<endl;
            return 0;
        }
        for (int i=1;(i-1ll)*(i-1ll)<=m;i++){
            ll a=m/i;
            ll b=m/a;
            //cout<<a<<" "<<b<<endl;
            if (a<n){
                if (ok(n-a, n, m, k)){
                    mv=min(mv, n-a);
                }
            }
            if (b<n){
                if (ok(n-b, n, m, k)){
                    mv=min(mv, n-b);
                }
            }
        }
        cout<<mv+k<<endl;
        /*
        ll edlol=-1;
        for (ll i=0;i<=n;i++){
            ll tlol=m/(n-i);
            cout<<m<<" "<<n-i<<" "<<tlol<<endl;
            if (tlol!=edlol){
                //cout<<tlol<<endl;
                if (ok(i, n, m, k)){
                    //cout<<i+k<<endl;
                    //break;
                }
            }
            edlol=tlol;
        }*/
        /*
        ll mi=0;
        ll ma=n;
        while (mi<=ma){
            ll mid=(mi+ma)/2;
            //cout<<mi<<" "<<ma<<" "<<mid<<endl;
            if (ok(mid, n, m, k)){
                ma=mid-1;
            }
            else{
                mi=mid+1;
            }
        }
        cout<<k+mi<<endl;
        */
    }
}

Test details

Test 1

Group: 1

Verdict:

input
1000
11 16 2
5 16 15
2 14 14
9 11 1
...

correct output
2
15
14
1
1
...

user output
2

Test 2

Group: 2

Verdict:

input
1000
1436 3023 1378
4419 4559 3881
115 4220 1440
3556 3152 1653
...

correct output
1378
3881
1440
2057
5312
...

user output
1378

Test 3

Group: 3

Verdict:

input
1000
337723917 939459738 544279388
233319567 486500388 164139442
722536320 995223331 969580610
274242146 994174001 844564432
...

correct output
544279388
164139442
1194505265
870263078
547470112
...

user output
544279388