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

Code

#include <bits/stdc++.h>

#define ll long long
#define ull unsigned long long

#define pii pair<int, int>
#define pll pair<long long, long long>

#define defmod 1000000007
using namespace std;

bool ok(ll n, ll m, ll t){
	ll mel = (n-1)*t;
	if(m-mel < t)
		return false;
	return true;
}
ll hae(ll n, ll m, ll k){
	if(m < n){
		ll re = n-m+k;
		return re;
	}
	ll su = 0;
	ll a = 0, b = 1500000000;
	unordered_set<ll> kk;
	while(a < b){
		ll mid = (a+b)/2;
		if(kk.count(mid)){
			break;
		}
		kk.insert(mid);
				
		if(!ok(n, m, mid)){
			b = mid-1;
		}
		else{
			a = mid;
		}
	}
	su = (a+b)/2;
	if(ok(n, m, su+1))
		su++;
	//cout << "su " << su << endl;
 	if((k-su*n) <= 0){
		return k;
				
	}
	else{
		ll jal = m-su*n;

		return  k+n-jal;
	}
}
int main(){
	cin.sync_with_stdio(0);
	cin.tie(0);
	
	int t; cin >> t;
	while(t--){
		ll n, m, k;
		cin >> n >> m >> k;
		cout << hae(n, m, k) << endl;
	}
	return 0;
}

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
15
14
1
1
...

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
3881
1440
2057
6983
...

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
164139442
1419429919
947359015
547470112
...