結果

問題 No.2526 Kth Not-divisible Number
ユーザー airthsairths
提出日時 2023-11-04 20:14:53
言語 C++17
(gcc 12.3.0 + boost 1.83.0)
結果
AC  
実行時間 318 ms / 2,000 ms
コード長 2,448 bytes
コンパイル時間 1,832 ms
コンパイル使用メモリ 126,232 KB
実行使用メモリ 4,348 KB
最終ジャッジ日時 2023-11-04 20:14:59
合計ジャッジ時間 6,077 ms
ジャッジサーバーID
(参考情報)
judge13 / judge14
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
4,348 KB
testcase_01 AC 2 ms
4,348 KB
testcase_02 AC 2 ms
4,348 KB
testcase_03 AC 317 ms
4,348 KB
testcase_04 AC 318 ms
4,348 KB
testcase_05 AC 317 ms
4,348 KB
testcase_06 AC 318 ms
4,348 KB
testcase_07 AC 318 ms
4,348 KB
testcase_08 AC 286 ms
4,348 KB
testcase_09 AC 233 ms
4,348 KB
testcase_10 AC 285 ms
4,348 KB
testcase_11 AC 230 ms
4,348 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

/*
 * 
 * 	\OoO/
 * 
 */
#include <iostream>
#include <string>
#include <cmath>
#include <vector>
#include <iomanip>
#include <map>
#include <numeric>
#include <functional>
#include <algorithm>
#include <set>
#include <queue>
#include <climits>
#include <cstdlib>
#include <chrono>
#include <random>

using namespace std;

using ll = long long int;
using ld = long double;

#define iamtefu ios_base::sync_with_stdio(false); cin.tie(0);
#define fl(i,a,n) for (ll i(a); i<n; i++)
#define rfl(i,a,n) for (ll i(n-1); i>=a; i--)
#define print(a) for (auto x:a){cout<<x<<" ";} cout<<"\n";
#define tt int tt; cin>>tt; for(;tt--;)

template <typename L, typename R>
inline L chmax(L &a, R b){if (a<b){a=b;return true;}return false;}
template <typename L, typename R>
inline L chmin(L &a, R b){if (a>b){a=b; return true;} return false;}

template <typename L, typename R>
ostream& operator<<(ostream &fout, pair<L, R> &p){
	fout<<"{"<<p.first<<","<<p.second<<"}";
	return fout;
}

template <typename T>
ostream& operator<<(ostream &fout, vector <T> &v){
	for (auto &x:v){
		fout<<x<<" ";
	}
	fout<<"\n";
	return fout;
}

template <typename T>
ostream& operator<<(ostream &fout, set <T> &st){
	for (auto &x:st){
		fout<<x<<" ";
	}
	fout<<"\n";
	return fout;
}

template <typename K, typename V>
ostream& operator<<(ostream &fout, map<K, V> &mp){
	fout<<"[";
	for (auto &[x,y]:mp){
		fout<<x<<":"<<y<<" ";
	}
	fout<<"]\n";
	return fout;
}

ll gcd(ll a, ll b){
	if (b==0){
		return a;
	}
	return gcd(b, a%b);
}

ll pw(ll a, ll b, ll m){
	ll res=1;
	a%=m;
	while (b){
		if (b&1){
			res=(res*a)%m;
		}
		a=(a*a)%m;
		b>>=1;
	}
	return res;
}

mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count());

void scn(){
	ll a, b, k; cin>>a>>b>>k;
	ll c=(a*b/gcd(a,b));
	auto wh=[&](ll mid){
		ll a1=mid-(mid/a+(mid/b)-(mid/(c)));
		return a1>=k;
	};
	ll l=0, r=4e18;
	while (l<=r){
		ll mid=(l+r)/2;
		if (wh(mid)){
			r=mid-1;
		} else {
			l=mid+1;
		}
	}
	cout<<l<<"\n";
	
	// not necessarily distinct
	// right down
}

int main(){
	iamtefu;
#if defined(airths)
	auto t1=chrono::high_resolution_clock::now();
	freopen("input.txt", "r", stdin);
	//freopen("output.txt", "w", stdout);
#else
	//
#endif
	tt
	{
		scn();
	}
#if defined(airths)
	auto t2=chrono::high_resolution_clock::now();
	ld ti=chrono::duration_cast<chrono::nanoseconds>(t2-t1).count();
	ti*=1e-6;
	cerr<<"Time elapsed: "<<setprecision(12)<<ti;
	cerr<<"ms\n";
#endif
	return 0;
}
0