A. Fraction
题目链接:http://codeforces.com/contest/854/problem/A
题目意思:给出一个数n,求两个数a+b=n,且a/b不可约分,如果存在多组满足条件的a和b,输出a/b最大的a和b。
题目思路:首先a+b=n,那么暴力枚举i和n-i,且gcd(i,n-i)==1,由于i越大是n-i越小,则a/b的值越大。
代码:
1 //Author: xiaowuga 2 #include <bits/stdc++.h> 3 using namespace std; 4 #define inf 0x3f3f3f3f 5 #define MAX INT_MAX 6 #define mem(s,ch) memset(s,ch,sizeof(s)) 7 const long long N=100000; 8 const long long mod=1e9+7; 9 typedef long long LL; 10 typedef int II; 11 typedef unsigned long long ull; 12 #define nc cout<<"nc"<<endl 13 #define sp " " 14 int main() { 15 ios::sync_with_stdio(false);cin.tie(0); 16 II n; 17 cin>>n; 18 II a,b; 19 for(II i=1;i<=n/2;i++){ 20 if(__gcd(i,n-i)==1){ 21 a=i;b=n-i; 22 } 23 } 24 cout<<a<<' '<<b<<endl; 25 return 0; 26 }