USACO 2.1.2 Ordered Fractions

USACO 2.1.2 Ordered Fractions

/**/ /*
ID: lorelei3
TASK: frac1
LANG: C++
*/


#include 
< fstream >
#include 
< iostream >
#include 
< algorithm >
#include 
< cstdio >
#include 
< cstdlib >

using   namespace  std;

const   int  MAX  =   165 ;

typedef 
struct  Frac {
    
int a,b;
    
double val;

    
bool operator < (const Frac &t)const{
        
return val < t.val;
    }

}
Frac;

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


int  n;
Frac num[MAX
* MAX];

int  main() {

    ifstream 
in("frac1.in");
    ofstream 
out("frac1.out");

    
in>>n;

    
int k=0;
    
for(int b=1; b<=n; ++b)
        
for(int a=1; a<b; ++a){
            
if(!(a%2&& !(b%2))
                
continue;
            
if(gcd(a,b)==1){
                num[k].a
=a;
                num[k].b
=b;
                num[k].val
=(double)a/b;
                k
++;
            }

        }

            
    sort(num, num
+k);

    
out<<"0/1\n";
    
for(int i=0; i<k; ++i)
        
out<<num[i].a<<"/"<<num[i].b<<endl;
    
out<<"1/1\n";
    
return 0;
}

你可能感兴趣的:(USACO 2.1.2 Ordered Fractions)