From be2491b093b1f0ca430bede679ecbb670041e483 Mon Sep 17 00:00:00 2001 From: cassio Date: Tue, 2 Jul 2013 09:46:45 +0400 Subject: restructuring of boca's git --- doc/tests/fontes/formiga-yes.c | 68 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 doc/tests/fontes/formiga-yes.c (limited to 'doc/tests/fontes/formiga-yes.c') 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 +#include +#include +#include + +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; +} -- cgit v1.2.3