Cod sursa(job #1009406)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 13 octombrie 2013 00:22:40
Problema Algoritmul lui Euclid extins Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include "stdio.h"
#include <utility>

std::pair<int,int> euclid3(int a, int b, int c)
{
    if(a%b)
    {
        std::pair<int,int> r=euclid3(b,a%b,c);
        if(r.first==0&&r.second==0)
            return r;
        return std::make_pair(r.second, r.first-(r.second*(a/b)));
    } 
    else
    {
        if(c%b==0)    
        {   
            return std::make_pair(1,c/b-a/b);
        } 
        else
        {
            return std::make_pair(0,0); 
        }
    }         
}

int main ()
{
    FILE *fin=fopen("euclid3.in","r");
    FILE *fout=fopen("euclid3.out","w");
    int a,b,c,n,i;
    fscanf(fin,"%d",&n);
    for(i=0;i<n;i++)
    {
        fscanf(fin,"%d %d %d",&a,&b,&c);  
        std::pair<int,int> r=euclid3(a,b,c); 
        fprintf(fout,"%d %d\n",r.first, r.second);

    }
    return 0;
}