aboutsummaryrefslogtreecommitdiff
path: root/doc/tests/fontes
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
parenta9aa438ea0558eb0044cf1e54a9190ddb41b65e5 (diff)
downloadboca-be2491b093b1f0ca430bede679ecbb670041e483.tar.gz
boca-be2491b093b1f0ca430bede679ecbb670041e483.zip
restructuring of boca's git
Diffstat (limited to 'doc/tests/fontes')
-rw-r--r--doc/tests/fontes/abacaxi-yes.c48
-rw-r--r--doc/tests/fontes/bits-compile.c5
-rw-r--r--doc/tests/fontes/bits-compile.cpp5
-rw-r--r--doc/tests/fontes/bits-compile.java23
-rw-r--r--doc/tests/fontes/bits-compile.pas27
-rw-r--r--doc/tests/fontes/bits-diffbug.c25
-rw-r--r--doc/tests/fontes/bits-incorrect.c17
-rw-r--r--doc/tests/fontes/bits-incorrect.cpp18
-rw-r--r--doc/tests/fontes/bits-incorrect.java23
-rw-r--r--doc/tests/fontes/bits-incorrect.pas27
-rw-r--r--doc/tests/fontes/bits-outputformat.c17
-rw-r--r--doc/tests/fontes/bits-outputformat.cpp17
-rw-r--r--doc/tests/fontes/bits-outputformat.java23
-rw-r--r--doc/tests/fontes/bits-outputformat.pas27
-rw-r--r--doc/tests/fontes/bits-runtime.c5
-rw-r--r--doc/tests/fontes/bits-runtime.cpp5
-rw-r--r--doc/tests/fontes/bits-runtime.java24
-rw-r--r--doc/tests/fontes/bits-runtime.pas27
-rw-r--r--doc/tests/fontes/bits-timelimit.c8
-rw-r--r--doc/tests/fontes/bits-timelimit.cpp8
-rw-r--r--doc/tests/fontes/bits-timelimit.java10
-rw-r--r--doc/tests/fontes/bits-timelimit.pas8
-rw-r--r--doc/tests/fontes/bits-yes.c17
-rw-r--r--doc/tests/fontes/bits-yes.cpp18
-rw-r--r--doc/tests/fontes/bits-yes.java23
-rw-r--r--doc/tests/fontes/bits-yes.pas27
-rw-r--r--doc/tests/fontes/formiga-yes.c68
-rw-r--r--doc/tests/fontes/grid.java10
-rw-r--r--doc/tests/fontes/multas-yes.c85
29 files changed, 645 insertions, 0 deletions
diff --git a/doc/tests/fontes/abacaxi-yes.c b/doc/tests/fontes/abacaxi-yes.c
new file mode 100644
index 0000000..3b9d1a0
--- /dev/null
+++ b/doc/tests/fontes/abacaxi-yes.c
@@ -0,0 +1,48 @@
+/* Copyright 2001 Maratona de Programacao do IME-USP -- cef@ime.usp.br
+ */
+
+#include <stdio.h>
+
+int main(int argc, char *argv[])
+{
+ FILE * ent;
+ int cont = 0;
+ int n, num, rec[1000], desp[1000], soma, i, inic, somamax, imax, fmax;
+
+ ent = stdin;
+ fscanf(ent, "%d", &n);
+ while (n > 0){
+ cont++;
+ printf("Fazenda %d\n", cont);
+ for (i = 0; i < n; i++) fscanf(ent, "%d", &rec[i]);
+ for (i = 0; i < n; i++) fscanf(ent, "%d", &desp[i]);
+ somamax = -1;
+ imax = 0;
+ fmax = 0;
+ soma = 0;
+ inic = 1;
+ for (i = 0; i < n; i++){
+ num = rec[i] - desp[i];
+ if (soma + num >= 0){
+ soma += num;
+ if (soma > somamax){
+ imax = inic;
+ fmax = i + 1;
+ somamax = soma;
+ }
+ }
+ else{
+ inic = i + 2;
+ soma = 0;
+ }
+ }
+ if(somamax >= 0)
+ printf("Inicio %d Fim %d\n\n", imax, fmax);
+ else
+ printf("O produtor so teve prejuizo nesta fazenda\n\n");
+
+ fscanf(ent, "%d", &n);
+ }
+ return(0);
+}
+
diff --git a/doc/tests/fontes/bits-compile.c b/doc/tests/fontes/bits-compile.c
new file mode 100644
index 0000000..ad979fd
--- /dev/null
+++ b/doc/tests/fontes/bits-compile.c
@@ -0,0 +1,5 @@
+int main(void) {
+ int n;
+ n = 42
+ return 0;
+}
diff --git a/doc/tests/fontes/bits-compile.cpp b/doc/tests/fontes/bits-compile.cpp
new file mode 100644
index 0000000..ad979fd
--- /dev/null
+++ b/doc/tests/fontes/bits-compile.cpp
@@ -0,0 +1,5 @@
+int main(void) {
+ int n;
+ n = 42
+ return 0;
+}
diff --git a/doc/tests/fontes/bits-compile.java b/doc/tests/fontes/bits-compile.java
new file mode 100644
index 0000000..dcfa1eb
--- /dev/null
+++ b/doc/tests/fontes/bits-compile.java
@@ -0,0 +1,23 @@
+import java.io.*;
+class bits {
+ public static void main(String args[]) {
+ StreamTokenizer st = new StreamTokenizer(System.in);
+ int i, j, n, max, inst=0;
+ while(42==42) {
+ st.nextToken();
+ n = (int) st.nval;
+ if(n==0) break;
+ max=1;
+ for(i=0; i<n; i++) {
+ st.nextToken();
+ j = (int) st.nval;
+ if(j>max) max=j;
+ }
+ for(i=0; max>0; i++)
+ max >>= 1;
+ inst++;
+ System.out.println("Instancia " + inst);
+ System.out.println(i*n + "\n");
+ }
+ }
+}
diff --git a/doc/tests/fontes/bits-compile.pas b/doc/tests/fontes/bits-compile.pas
new file mode 100644
index 0000000..ad2765f
--- /dev/null
+++ b/doc/tests/fontes/bits-compile.pas
@@ -0,0 +1,27 @@
+program bits;
+var i, j, n, max, inst: Longint;
+begin
+ inst=0;
+ while true do
+ begin
+ read(n);
+ if n=0 then break;
+ max:=1;
+ for i:=0 to n-1 do
+ begin
+ read(j);
+ if j>max then max:=j
+ end;
+ i:=0;
+ while max>0 do
+ begin
+ max := max div 2;
+ i := i + 1
+ end;
+ write('Instancia ');
+ inst := inst + 1;
+ writeln(inst);
+ writeln(i*n);
+ writeln()
+ end
+end.
diff --git a/doc/tests/fontes/bits-diffbug.c b/doc/tests/fontes/bits-diffbug.c
new file mode 100644
index 0000000..3703152
--- /dev/null
+++ b/doc/tests/fontes/bits-diffbug.c
@@ -0,0 +1,25 @@
+/* this file illustrate a bug in diff that, even using -w -B -b,
+ * it will think that the files are different and will return
+ * exit code 1, when the only difference between them is a line
+ * in the end with a single white space.
+ * Author: cassio@ime.usp.br
+ * Last updated: 18/aug/2008
+ */
+#include <stdio.h>
+int main(void) {
+ int i, j, n, max, inst=0;
+ while(42) {
+ scanf("%d", &n);
+ if(!n) break;
+ max=1;
+ for(i=0; i<n; i++) {
+ scanf("%d", &j);
+ if(j>max) max=j;
+ }
+ for(i=0; max>0; i++)
+ max >>= 1;
+ printf("Instancia %d\n%d\n\n", ++inst, i*n);
+ }
+ printf(" \n");
+ return 0;
+}
diff --git a/doc/tests/fontes/bits-incorrect.c b/doc/tests/fontes/bits-incorrect.c
new file mode 100644
index 0000000..de05583
--- /dev/null
+++ b/doc/tests/fontes/bits-incorrect.c
@@ -0,0 +1,17 @@
+#include <stdio.h>
+int main(void) {
+ int i, j, n, max, inst=0;
+ while(42) {
+ scanf("%d", &n);
+ if(!n) break;
+ max=0;
+ for(i=0; i<n; i++) {
+ scanf("%d", &j);
+ if(j>max) max=j;
+ }
+ for(i=0; max>0; i++)
+ max >>= 1;
+ printf("Instancia %d\n%d\n\n", ++inst, i*n);
+ }
+ return 0;
+}
diff --git a/doc/tests/fontes/bits-incorrect.cpp b/doc/tests/fontes/bits-incorrect.cpp
new file mode 100644
index 0000000..3b38845
--- /dev/null
+++ b/doc/tests/fontes/bits-incorrect.cpp
@@ -0,0 +1,18 @@
+#include <iostream>
+using namespace std;
+int main(void) {
+ int i, j, n, max, inst=0;
+ while(42) {
+ cin >> n;
+ if(!n) break;
+ max=0;
+ for(i=0; i<n; i++) {
+ cin >> j;
+ if(j>max) max=j;
+ }
+ for(i=0; max>0; i++)
+ max >>= 1;
+ cout << "Instancia " << ++inst << endl << (i*n) << endl << endl;
+ }
+ return 0;
+}
diff --git a/doc/tests/fontes/bits-incorrect.java b/doc/tests/fontes/bits-incorrect.java
new file mode 100644
index 0000000..30b388d
--- /dev/null
+++ b/doc/tests/fontes/bits-incorrect.java
@@ -0,0 +1,23 @@
+import java.io.*;
+class bits {
+ public static void main(String args[]) throws Exception {
+ StreamTokenizer st = new StreamTokenizer(System.in);
+ int i, j, n, max, inst=0;
+ while(42==42) {
+ st.nextToken();
+ n = (int) st.nval;
+ if(n==0) break;
+ max=0;
+ for(i=0; i<n; i++) {
+ st.nextToken();
+ j = (int) st.nval;
+ if(j>max) max=j;
+ }
+ for(i=0; max>0; i++)
+ max >>= 1;
+ inst++;
+ System.out.println("Instancia " + inst);
+ System.out.println(i*n + "\n");
+ }
+ }
+}
diff --git a/doc/tests/fontes/bits-incorrect.pas b/doc/tests/fontes/bits-incorrect.pas
new file mode 100644
index 0000000..7dbcd4b
--- /dev/null
+++ b/doc/tests/fontes/bits-incorrect.pas
@@ -0,0 +1,27 @@
+program bits;
+var i, j, n, max, inst: Longint;
+begin
+ inst:=0;
+ while true do
+ begin
+ read(n);
+ if n=0 then break;
+ max:=1;
+ for i:=0 to n-1 do
+ begin
+ read(j);
+ if j>max then max:=j
+ end;
+ i:=0;
+ while max>0 do
+ begin
+ max := max div 2;
+ i := i + 1
+ end;
+ write('Instancia ');
+ inst := inst + 1;
+ writeln(inst);
+ writeln(i);
+ writeln()
+ end
+end.
diff --git a/doc/tests/fontes/bits-outputformat.c b/doc/tests/fontes/bits-outputformat.c
new file mode 100644
index 0000000..62d11f5
--- /dev/null
+++ b/doc/tests/fontes/bits-outputformat.c
@@ -0,0 +1,17 @@
+#include <stdio.h>
+int main(void) {
+ int i, j, n, max, inst=0;
+ while(42) {
+ scanf("%d", &n);
+ if(!n) break;
+ max=1;
+ for(i=0; i<n; i++) {
+ scanf("%d", &j);
+ if(j>max) max=j;
+ }
+ for(i=0; max>0; i++)
+ max >>= 1;
+ printf("INStanCIA %d\n%d\n\n", ++inst, i*n);
+ }
+ return 0;
+}
diff --git a/doc/tests/fontes/bits-outputformat.cpp b/doc/tests/fontes/bits-outputformat.cpp
new file mode 100644
index 0000000..62d11f5
--- /dev/null
+++ b/doc/tests/fontes/bits-outputformat.cpp
@@ -0,0 +1,17 @@
+#include <stdio.h>
+int main(void) {
+ int i, j, n, max, inst=0;
+ while(42) {
+ scanf("%d", &n);
+ if(!n) break;
+ max=1;
+ for(i=0; i<n; i++) {
+ scanf("%d", &j);
+ if(j>max) max=j;
+ }
+ for(i=0; max>0; i++)
+ max >>= 1;
+ printf("INStanCIA %d\n%d\n\n", ++inst, i*n);
+ }
+ return 0;
+}
diff --git a/doc/tests/fontes/bits-outputformat.java b/doc/tests/fontes/bits-outputformat.java
new file mode 100644
index 0000000..7a3d144
--- /dev/null
+++ b/doc/tests/fontes/bits-outputformat.java
@@ -0,0 +1,23 @@
+import java.io.*;
+class bits {
+ public static void main(String args[]) throws Exception {
+ StreamTokenizer st = new StreamTokenizer(System.in);
+ int i, j, n, max, inst=0;
+ while(42==42) {
+ st.nextToken();
+ n = (int) st.nval;
+ if(n==0) break;
+ max=1;
+ for(i=0; i<n; i++) {
+ st.nextToken();
+ j = (int) st.nval;
+ if(j>max) max=j;
+ }
+ for(i=0; max>0; i++)
+ max >>= 1;
+ inst++;
+ System.out.println("Instancia " + inst);
+ System.out.println(i*n);
+ }
+ }
+}
diff --git a/doc/tests/fontes/bits-outputformat.pas b/doc/tests/fontes/bits-outputformat.pas
new file mode 100644
index 0000000..e5094d2
--- /dev/null
+++ b/doc/tests/fontes/bits-outputformat.pas
@@ -0,0 +1,27 @@
+program bits;
+var i, j, n, max, inst: Longint;
+begin
+ inst:=0;
+ while true do
+ begin
+ read(n);
+ if n=0 then break;
+ max:=1;
+ for i:=0 to n-1 do
+ begin
+ read(j);
+ if j>max then max:=j
+ end;
+ i:=0;
+ while max>0 do
+ begin
+ max := max div 2;
+ i := i + 1
+ end;
+ write('Instacia ');
+ inst := inst + 1;
+ writeln(inst);
+ writeln(i*n);
+ writeln()
+ end
+end.
diff --git a/doc/tests/fontes/bits-runtime.c b/doc/tests/fontes/bits-runtime.c
new file mode 100644
index 0000000..9fe074f
--- /dev/null
+++ b/doc/tests/fontes/bits-runtime.c
@@ -0,0 +1,5 @@
+int main(void) {
+ int *n= (int *)42;
+ *n = 42;
+ return 0;
+}
diff --git a/doc/tests/fontes/bits-runtime.cpp b/doc/tests/fontes/bits-runtime.cpp
new file mode 100644
index 0000000..9fe074f
--- /dev/null
+++ b/doc/tests/fontes/bits-runtime.cpp
@@ -0,0 +1,5 @@
+int main(void) {
+ int *n= (int *)42;
+ *n = 42;
+ return 0;
+}
diff --git a/doc/tests/fontes/bits-runtime.java b/doc/tests/fontes/bits-runtime.java
new file mode 100644
index 0000000..f7bffc5
--- /dev/null
+++ b/doc/tests/fontes/bits-runtime.java
@@ -0,0 +1,24 @@
+import java.io.*;
+class bits {
+ public static void main(String args[]) throws Exception {
+ StreamTokenizer st = new StreamTokenizer(System.in);
+ int i, j, n, max, inst=0;
+ while(42==42) {
+ st.nextToken();
+ n = (int) st.nval;
+ if(n==0) break;
+ max=1;
+ for(i=0; i<n; i++) {
+ st.nextToken();
+ j = (int) st.nval;
+ if(j>max) max=j;
+ }
+ for(i=0; max>0; i++)
+ max >>= 1;
+ inst++;
+ System.out.println("Instancia " + inst);
+ System.out.println(i*n + "\n");
+ throw new Exception("OPA! Runtime error, hehehe...");
+ }
+ }
+}
diff --git a/doc/tests/fontes/bits-runtime.pas b/doc/tests/fontes/bits-runtime.pas
new file mode 100644
index 0000000..ed496c0
--- /dev/null
+++ b/doc/tests/fontes/bits-runtime.pas
@@ -0,0 +1,27 @@
+program bits;
+var i, inst, max, n: Longint;
+ v: array[0..1] of Longint;
+begin
+ while true do
+ begin
+ read(n);
+ if n=0 then break;
+ max := 1;
+ for i:=0 to n-1 do
+ begin
+ read(v[i]);
+ if v[i]>max then max:=v[i]
+ end;
+ i:=0;
+ while max>0 do
+ begin
+ max := max div 2;
+ i := i + 1
+ end;
+ write('Instancia ');
+ inst := inst + 1;
+ writeln(inst);
+ writeln(i*n);
+ writeln()
+ end
+end.
diff --git a/doc/tests/fontes/bits-timelimit.c b/doc/tests/fontes/bits-timelimit.c
new file mode 100644
index 0000000..19e1c57
--- /dev/null
+++ b/doc/tests/fontes/bits-timelimit.c
@@ -0,0 +1,8 @@
+#include <stdio.h>
+int main(void) {
+ int n=0;
+ while(42) {
+ n++;
+ }
+ return 0;
+}
diff --git a/doc/tests/fontes/bits-timelimit.cpp b/doc/tests/fontes/bits-timelimit.cpp
new file mode 100644
index 0000000..25cb517
--- /dev/null
+++ b/doc/tests/fontes/bits-timelimit.cpp
@@ -0,0 +1,8 @@
+#include <iostream>
+int main(void) {
+ int n=0;
+ while(42) {
+ n++;
+ }
+ return 0;
+}
diff --git a/doc/tests/fontes/bits-timelimit.java b/doc/tests/fontes/bits-timelimit.java
new file mode 100644
index 0000000..4330bb3
--- /dev/null
+++ b/doc/tests/fontes/bits-timelimit.java
@@ -0,0 +1,10 @@
+import java.io.*;
+class bits {
+ public static void main(String args[]) throws Exception {
+ StreamTokenizer st = new StreamTokenizer(System.in);
+ int inst=0;
+ while(42==42) {
+ inst++;
+ }
+ }
+}
diff --git a/doc/tests/fontes/bits-timelimit.pas b/doc/tests/fontes/bits-timelimit.pas
new file mode 100644
index 0000000..d0b496d
--- /dev/null
+++ b/doc/tests/fontes/bits-timelimit.pas
@@ -0,0 +1,8 @@
+program bits;
+var inst: Longint;
+begin
+ inst:=0;
+ while true do
+ begin
+ end
+end.
diff --git a/doc/tests/fontes/bits-yes.c b/doc/tests/fontes/bits-yes.c
new file mode 100644
index 0000000..ab23f83
--- /dev/null
+++ b/doc/tests/fontes/bits-yes.c
@@ -0,0 +1,17 @@
+#include <stdio.h>
+int main(void) {
+ int i, j, n, max, inst=0;
+ while(42) {
+ scanf("%d", &n);
+ if(!n) break;
+ max=1;
+ for(i=0; i<n; i++) {
+ scanf("%d", &j);
+ if(j>max) max=j;
+ }
+ for(i=0; max>0; i++)
+ max >>= 1;
+ printf("Instancia %d\n%d\n\n", ++inst, i*n);
+ }
+ return 0;
+}
diff --git a/doc/tests/fontes/bits-yes.cpp b/doc/tests/fontes/bits-yes.cpp
new file mode 100644
index 0000000..11a32b5
--- /dev/null
+++ b/doc/tests/fontes/bits-yes.cpp
@@ -0,0 +1,18 @@
+#include <iostream>
+using namespace std;
+int main(void) {
+ int i, j, n, max, inst=0;
+ while(42) {
+ cin >> n;
+ if(!n) break;
+ max=1;
+ for(i=0; i<n; i++) {
+ cin >> j;
+ if(j>max) max=j;
+ }
+ for(i=0; max>0; i++)
+ max >>= 1;
+ cout << "Instancia " << ++inst << endl << (i*n) << endl << endl;
+ }
+ return 0;
+}
diff --git a/doc/tests/fontes/bits-yes.java b/doc/tests/fontes/bits-yes.java
new file mode 100644
index 0000000..3448484
--- /dev/null
+++ b/doc/tests/fontes/bits-yes.java
@@ -0,0 +1,23 @@
+import java.io.*;
+class bits {
+ public static void main(String args[]) throws Exception {
+ StreamTokenizer st = new StreamTokenizer(System.in);
+ int i, j, n, max, inst=0;
+ while(42==42) {
+ st.nextToken();
+ n = (int) st.nval;
+ if(n==0) break;
+ max=1;
+ for(i=0; i<n; i++) {
+ st.nextToken();
+ j = (int) st.nval;
+ if(j>max) max=j;
+ }
+ for(i=0; max>0; i++)
+ max >>= 1;
+ inst++;
+ System.out.println("Instancia " + inst);
+ System.out.println(i*n + "\n");
+ }
+ }
+}
diff --git a/doc/tests/fontes/bits-yes.pas b/doc/tests/fontes/bits-yes.pas
new file mode 100644
index 0000000..0970c43
--- /dev/null
+++ b/doc/tests/fontes/bits-yes.pas
@@ -0,0 +1,27 @@
+program bits;
+var i, j, n, max, inst: Longint;
+begin
+ inst:=0;
+ while true do
+ begin
+ read(n);
+ if n=0 then break;
+ max:=1;
+ for i:=0 to n-1 do
+ begin
+ read(j);
+ if j>max then max:=j
+ end;
+ i:=0;
+ while max>0 do
+ begin
+ max := max div 2;
+ i := i + 1
+ end;
+ write('Instancia ');
+ inst := inst + 1;
+ writeln(inst);
+ writeln(i*n);
+ writeln()
+ end
+end.
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;
+}
diff --git a/doc/tests/fontes/grid.java b/doc/tests/fontes/grid.java
new file mode 100644
index 0000000..b7876ec
--- /dev/null
+++ b/doc/tests/fontes/grid.java
@@ -0,0 +1,10 @@
+import java.io.*;
+class cancer {
+ public static void main(String args[]) throws Exception {
+ StreamTokenizer st = new StreamTokenizer(System.in);
+ int inst=0;
+ while(42==42) {
+ inst++;
+ }
+ }
+}
diff --git a/doc/tests/fontes/multas-yes.c b/doc/tests/fontes/multas-yes.c
new file mode 100644
index 0000000..3729d0b
--- /dev/null
+++ b/doc/tests/fontes/multas-yes.c
@@ -0,0 +1,85 @@
+/* Copyright 2001 Maratona de Programacao do IME-USP -- cef@ime.usp.br
+ */
+
+#include <stdio.h>
+
+typedef struct
+{
+ char nome[100];
+ char nomeconv[100];
+
+ int pontos;
+}
+m_familia;
+
+#define MAX 21
+
+char conv(char c)
+{
+ if(c >= 'A' && c <= 'Z') return (c += 'a' - 'A');
+ return(c);
+
+}
+
+
+int menor(char v[80], char w[80])
+{
+ int i=0;
+
+ while(i < 80 && v[i] == w[i])i++;
+ return(v[i] < w[i]);
+}
+
+
+int main(int argc, char *argv[])
+{
+ FILE * ent;
+ int cont = 0;
+ int n, i,j, multa, nmult, min;
+ m_familia familia[20];
+
+ ent = stdin;
+
+ fscanf(ent, "%d", &n);
+ while (n > 0){
+ cont++;
+ printf("Familia %d\n", cont);
+
+ for (i = 0; i < n; i++){
+ fscanf(ent, "%s", &(familia[i].nome[0]));
+ j = 0;
+ while(familia[i].nome[j] != 0) {
+ familia[i].nomeconv[j]=conv(familia[i].nome[j]);
+ j++;
+ }
+ familia[i].nomeconv[j]=0;
+
+ familia[i].pontos = 0;
+ }
+ fscanf(ent, "%d", &multa);
+ nmult = 0;
+
+ while(multa > 0){
+ nmult++;
+ min = 0;
+ for (i = 0; i < n; i++)
+ if (familia[i].pontos < familia[min].pontos ||
+ (familia[i].pontos == familia[min].pontos &&
+ menor(familia[i].nomeconv, familia[min].nomeconv)))
+ min = i;
+ printf("Multa %d %s", nmult, familia[min].nome);
+ familia[min].pontos += multa;
+ if ( familia[min].pontos >= MAX)
+ printf(" carteira suspensa\n");
+ else printf("\n");
+ fscanf(ent, "%d", &multa);
+ }
+ printf("\n");
+
+ fscanf(ent, "%d", &n);
+ }
+ fclose(ent);
+ return(0);
+}
+
+