Cod sursa(job #3229739)

Utilizator Seress26Seres Artur Seress26 Data 17 mai 2024 11:29:37
Problema Algoritmul lui Euclid extins Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 1.06 kb
#include <stdio.h>
#include <stdlib.h>

void euclid_extins(int a,int b,int *s,int *x,int *y)
{
    int x1=0,y1=0;
    if(b==0)
    {
        *s=a;
        *x=1;
        *y=0;
    }
    else
    {
        euclid_extins(b,a%b,s,&x1,&y1);
        *x=y1;
        *y=x1-(a/b)*y1;
    }
}
void citire(FILE *fis,FILE *gis)
{
    int n=0,a=0,b=0,c=0,i=0;
    fscanf(fis,"%d",&n);
    for(i=0;i<n;i++)
    {
        fscanf(fis,"%d",&a);
        fscanf(fis,"%d",&b);
        fscanf(fis,"%d",&c);
        int s=0,x=0,y=0;
        euclid_extins(a,b,&s,&x,&y);
        if(c%s!=0)
            fprintf(gis,"0 0\n");
        else
            fprintf(gis,"%d %d\n",(c/s*x),(c/s*y));
    }
}

int main(void)
{   
    FILE *fis=NULL,*gis=NULL;
    fis=fopen("euclid3.in","r");
    if(fis==NULL)
    {
        perror("eroare la deschiderea fisierului de intrare\n");
        exit(-1);
    }
    gis=fopen("euclid3.out","w");
    if(gis==NULL)
    {
        perror("eroare la deschiderea fisierului de iesire\n");
        exit(-1);
    }
    citire(fis,gis);
    fclose(fis);
    fclose(gis);

    return 0;
}