aboutsummaryrefslogtreecommitdiff
path: root/doc/tests/fontes/formiga-yes.c
diff options
context:
space:
mode:
authorcassio <cassiopc@gmail.com>2013-07-02 05:46:45 +0000
committercassio <cassiopc@gmail.com>2013-07-02 05:46:45 +0000
commitbe2491b093b1f0ca430bede679ecbb670041e483 (patch)
treefe2da63d1811cb93e4352a43a113ace37b9f6017 /doc/tests/fontes/formiga-yes.c
parenta9aa438ea0558eb0044cf1e54a9190ddb41b65e5 (diff)
downloadboca-be2491b093b1f0ca430bede679ecbb670041e483.tar.gz
boca-be2491b093b1f0ca430bede679ecbb670041e483.zip
restructuring of boca's git
Diffstat (limited to 'doc/tests/fontes/formiga-yes.c')
-rw-r--r--doc/tests/fontes/formiga-yes.c68
1 files changed, 68 insertions, 0 deletions
diff --git a/doc/tests/fontes/formiga-yes.c b/doc/tests/fontes/formiga-yes.c
new file mode 100644
index 0000000..7640d75
--- /dev/null
+++ b/doc/tests/fontes/formiga-yes.c
@@ -0,0 +1,68 @@
+/* Copyright 2002 Maratona de Programacao do IME-USP -- cef@ime.usp.br (written by S.G.Tavares)
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+FILE *in, *out;
+
+long mdc(long a, long b){
+ long i, mdca=1;
+ for(i=2; ((i<=a) && (i<=b)) ; i++)
+ if ((!(a%i)) && (!(b%i))) mdca = i;
+ return mdca;
+}
+
+
+int main(){
+ long x, y, i, j, k;
+ char p1[8];
+ double db1;
+ int dh, dv;
+ in = stdin;
+ out = stdout;
+
+ while(42){
+ fscanf(in, "%ld%ld\n", &x, &y);
+ if (!x || !y) break;
+ fscanf(in, "%s\n", &p1[0]);
+ if (p1[0]=='N') {
+ dh = 0;
+ dv = 0;
+ }
+ else if (p1[0]=='S') {
+ dh = 1;
+ dv = 1;
+ }
+ else if (p1[0]=='L') {
+ dh = 1;
+ dv = 0;
+ }
+ else {
+ dh = 0;
+ dv = 1;
+ }
+ for (i=x, j=y; ((!(i%2)) && (!(j%2))); i /= 2, j /= 2 );
+ if (i%2) dh = !dh;
+ if (j%2) dv = !dv;
+ k = mdc(x, y);
+ db1 = 100.0/(double)k;
+ i = floor(100.0/(double)k);
+ if (db1-(double)i > 0.5) i++;
+
+ j = x/k + y/k -2;
+ fprintf(out, "%3ld%%%10ld", i, j);
+ if (dh){
+ if (dv) fprintf(out, " Sul\n");
+ else fprintf(out, " Leste\n");
+ }
+ else {
+ if (dv) fprintf(out, " Oeste\n");
+ else fprintf(out, " Norte\n");
+ }
+ }
+
+ return 0;
+}