Submission #448219

#TimeUsernameProblemLanguageResultExecution timeMemory
448219ApiramEuklid (COCI20_euklid)C++14
20 / 110
1090 ms204 KiB
#include<bits/stdc++.h>
using namespace std;
int64_t solve(int a,int b){
	if (a==1){
		return b;
	}
	if (b==1)return a;
	if (a<b)solve(b/a,a);
	else
	return solve(a/b, b);
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int test;cin>>test;
while(test--){
	int64_t g,h;
	cin>>g>>h;
	vector<pair<int,int>>ans;
	if (g==1){
		cout<<1<<" "<<h<<endl;
		continue;
	}
	else if (g==h){
		cout<<g<<" "<<h<<endl;
		continue;
	}
	else if (h==2){
		cout<<g*2<<" "<<g<<endl;
		continue;
	}
	else if (g==h*h){
		cout<<g*h<<" "<<g<<endl;
		continue;
	}
	else{
		int64_t temp = h;
		while(temp<=g)temp*=h;
		for (int i =(temp+g-1)/g;;i++){
			if (solve(i*g,g*(i*h + 1))==h){
				ans.push_back({i*g,i*h + 1});
				break;
			}
		}
		
		cout<<ans[0].first*g<<" "<<ans[0].second*g<<endl;
		
		
	}
}
return 0;}

Compilation message (stderr)

euklid.cpp: In function 'int64_t solve(int, int)':
euklid.cpp:8:15: warning: control reaches end of non-void function [-Wreturn-type]
    8 |  if (a<b)solve(b/a,a);
      |          ~~~~~^~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...