Pagini recente » Cod sursa (job #1899672) | Cod sursa (job #1297663) | Cod sursa (job #2916736) | Cod sursa (job #354895) | Cod sursa (job #2857698)
#include <tuple>
#include <fstream>
#include <iostream>
#include <cstdlib>
std::tuple<int, int, int> cmmdcExtins(int a, int b) {
auto r = std::make_tuple(a, b);
auto s = std::make_tuple(1, 0);
auto t = std::make_tuple(0, 1);
while (std::get<1>(r) != 0) {
int quot = std::get<0>(r) / std::get<1>(r);
r = {std::get<1>(r), std::get<0>(r) - quot * std::get<1>(r)};
s = {std::get<1>(s), std::get<0>(s) - quot * std::get<1>(s)};
t = {std::get<1>(t), std::get<0>(t) - quot * std::get<1>(t)};
}
return std::make_tuple(std::get<0>(s), std::get<0>(t), std::get<0>(r));
}
int main() {
std::fstream in;
in.open("euclid3.in", std::ios::in);
int M;
if (!in.is_open()) {
std::cerr << "File could not be opened." << std::endl;
exit(EXIT_FAILURE);
}
in >> M;
std::fstream out;
out.open("euclid3.out", std::ios::out);
if (!out.is_open()) {
std::cerr << "File could not be written to." << std::endl;
exit(EXIT_FAILURE);
}
int a, b, c;
for (; M; --M) {
in >> a >> b >> c;
auto extins = cmmdcExtins(a, b);
int x = std::get<0>(extins);
int y = std::get<1>(extins);
int d = std::get<2>(extins);
if (c % d != 0) {
out << "0 0\n";
}
else {
//std::cout << a << " " << b << " " << c << " " << x << " " << y << " " << d << std::endl;
out << x * c/d << " " << y * c/d << "\n";
}
}
in.close();
out.close();
exit(EXIT_SUCCESS);
}