about summary refs log tree commit diff
path: root/09/TP-HN-2014/cau1.cpp
diff options
context:
space:
mode:
Diffstat (limited to '09/TP-HN-2014/cau1.cpp')
-rw-r--r--09/TP-HN-2014/cau1.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/09/TP-HN-2014/cau1.cpp b/09/TP-HN-2014/cau1.cpp
new file mode 100644
index 0000000..274cef6
--- /dev/null
+++ b/09/TP-HN-2014/cau1.cpp
@@ -0,0 +1,51 @@
+#include <iostream>
+#include <fstream>
+
+using namespace std;
+
+long
+gcd(long x, long y)
+{
+  long z;
+  while (y)
+    {
+      z = x;
+      x = y;
+      y = z % x;
+    }
+
+  return x;
+}
+
+int
+main()
+{
+  ifstream infile;
+  long a, b, c, d;
+  infile.open("CAU1.INP");
+  infile >> a >> b >> c >> d;
+  infile.close();
+
+  long y = b * d / gcd(b, d);
+  long x = a * y / b - c * y / d;
+  if (!x)
+    y = 1;
+  else
+    {
+      a = gcd(x, y);
+      x /= a;
+      y /= a;
+      if (y < 0)
+        {
+          x *= -1;
+          y *= -1;
+        }
+    }
+
+  ofstream outfile;
+  outfile.open("CAU1.OUT");
+  outfile << x << ' ' << y << endl;
+  outfile.close();
+
+  return 0;
+}