Pagini recente » Cod sursa (job #1152196) | Cod sursa (job #21035) | Cod sursa (job #2727427) | Borderou de evaluare (job #2951036) | Cod sursa (job #758405)
Cod sursa(job #758405)
#include <cstdio>
#include <iostream>
#include <fstream>
#include <list>
#include <limits.h>
#include <stdio.h>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <stdio.h>
#include <algorithm>
#include <deque>
#include <string.h>
using namespace std;
void swap(int &a, int&b)
{
if (a==b) return;
a = a^b;
b = a^b;
a = b^a;
}
//a>b
void euclid_ext(int a, int b,int &d,int &x, int &y)
{
if (b==0){
d =a;
x = 1;
y =0;
}
else
{
int k = a%b;
int c = a/b;
int x0=0,y0=0;
a=b;
b=k;
euclid_ext(a,b,d,x0,y0);
y = x0-c*y0;
x = y0;
}
}
int main()
{
FILE* f = fopen("euclid3.in","r");
FILE* g = fopen("euclid3.out","w+");
int T;
int gr = 0;
fscanf(f,"%d",&T);
for (int i=0;i<T;i++)
{
int a,b,c,d,x,y;
fscanf(f,"%d %d %d", &a,&b, &c);
if (abs(a)<abs(b)) {swap(a,b);gr=1;}
euclid_ext(a,b,d,x,y);
if (c%d ==0)
{
x = x*c/d;
y = y*c/d;
if (gr) swap(x,y);
fprintf(g,"%d %d\n",x,y);
}
else
fprintf(g,"0 0\n");
}
fclose(f);
fclose(g);
}