TOI

 

1ère Olympiade Tunisienne d'Informatique

Ariana, 19 avril 2003


Une solution du problème 1(W_ORDERED)

PROGRAM WELL_ORDERED;

USES wincrt;

VAR       n   : INTEGER;

      i,mn,mx,p : LONGINT;

PROCEDURE min_max(n:integer; VAR min,max:LONGINT);

VAR i : INTEGER;

BEGIN

  min:=0;

  max:=0;

  FOR i:=1 to n do

            BEGIN

              min:=10*min + i;

              max:=10*max + (9-n+i);

            END;

END;

FUNCTION w_ordered(m:LONGINT):BOOLEAN;

VAR i,c1,c2 :INTEGER;

     valide :BOOLEAN;

BEGIN

   IF m<10 THEN

      BEGIN

             w_ordered:=TRUE

      END

   ELSE

            BEGIN

               REPEAT

                        c1:=m MOD 10;

                        m:= m DIV 10;

                        c2:= m MOD 10;

                        valide :=(c1>c2);

               UNTIL NOT(valide) OR (m<10);

               w_ordered:=valide;

            END;

END;

PROCEDURE saisie(VAR m:integer);

BEGIN

            REPEAT

               WRITE('Donner un entier n compris entre 1et 9 : ');READLN(m);

            UNTIL m in [2..8];

END;

BEGIN

    saisie(n);

    min_max(n,mn,mx);

    p:=0;

    FOR i:=mn to mx DO

            BEGIN

               IF w_ordered(i) THEN

                  BEGIN

                        p:=p+1;

                        writeln(p:10,' - ',i);

                  END;

            END;

END.

Le jeu de tests pour l'évaluation

Les 5 tests pour le programmes W_ORDERED (20 points par test)

Test 1

4

126 entiers

Test 2

2

36  entiers

Test 3

7

36 entiers

Test 4

5

126 entiers

 

Test 5

9

donnée refusée par le programme

 

 

 

 

 

 

Accueil | 1er Stage | 2ème Stage | 3ème Stage | TOI | AOI | IOI | Edunet