Solicitando las preguntas y respuestas de la prueba semifinal del grupo popular noip2007.

Pregunta 1

Programador (entrada, salida);

Variables a, b, c, id, enteros de s:array[1..300]; .0] Valor booleano;

I, j, k, t, m, n, x, y: entero;

Inicio

asignar (entrada, 'estudiante en');

asignar(salida, 'erudito. fuera');

Reestablecer (entrada); (n);

Para i:=1 an hacer

comenzar readln(a[i], b[i], c[I]); = I; fin;

Para i:=1 a n hacer

s[I]:= a[I]+b[I]+c[I ];

Para i:=1 a n-1 hacer

para j:=i a n hacer

Iniciar

Si s[I] <Entonces s[j]

Inicio

t:= s[I]; /p>

t:= a[I]; a[I]:= a[j]; a[j]:= t; I]:= b[j]; b[j]:= t;

t:= c[I]; ;

t:= id[I]; id[i]:= id[j]. id[j]:= t;

End;

Si s[I]= s[j] entonces

Si a[I]& lt; Entonces

Inicio

t:= s[I]; s[I]:= s[j]; t:= a[I]; a[I]:= a[j]; a[j]:= t;

t:= b[I]; j]; b[j]:= t;

t:= c[I]; c[I]:= c[j]; p>t:= id[I]; id[i]:= id[j]. id[j]:= t;

Fin

Fin;

para i:=1 a 5 haz

writeln(id [i], ' ', a[I]+b[I]+c[I]);

Cerrar (entrada); cerrar (salida);

Fin.

Segunda pregunta

Grupo de programas (entrada, salida);

Definir variables

s, I, w, n: Entero;

Respuesta: Entero del array [1..30000];

Procedimiento sort_quick(l, r: integer);

var i, j, x, y: entero;

Inicio

I:= l; j:= r;

x:= a[(l+r)div 2 ];

Repetir

mientras a[I]<x hace compañía(一);

mientras x & lta[j]hace dism(j );

Si i & lt=entonces j

comienza y:= a[I]; a[I]:= a[j]; i);décimo;fin;

hasta i>j;

si i<r entonces sort_quick(i,r);

si i<j entonces sort_quick(l,j) ;

Fin;

Inicio

Asignar(entrada, 'group.in');

p>

Asignación ( salida, 'grupo. salida');

Reestablecer (entrada);

readln(w);

Para i:=1 an hacer

readln(a[I]);

sort_quick(1, n);

I:= 1; := 0;

Repetir

Si a[I]+a[n]<=w entonces comienza s:= s+1 ; ); fin

else start s:= s+1; diciembre (día);

Hasta que>n;

Escribiendo contenido;

Cerrar (entrada);

Cerrar (salida);

Fin.

La tercera pregunta

Aún no está hecho

La cuarta pregunta

Programa Hanoi (entrada, salida);

p>

var n, I: entero;

s: cadena;

Función twox(var ss: cadena): cadena

Definición Variable

I, j: entero

sss: cadena

Inicio

ss:= ' 0 '+ss;

SSS:= ss;

I:=length(ss);

para j:=1 que hago

Iniciar

if ss[j+1]>Eso son 4 minutos

Caso ss[j]

“0”, “5”: SSS[j] : = "1";

1", "6": SSS[j]:= "3";

2 ', ' 7 ': SSS[j]:= ' 5 ';

3 ', ' 8 ': SSS[j]:= ' 7 '

4 ', ' 9 ': SSS[j]:= ' 9 '; ;

Fin;

if ss[j+1]& lt;Sólo 5 minutos

Caso ss[j]

" 0","5":SSS[j]:="0";

1","6":SSS[j]:="2";

2 ' , ' 7 ': SSS[j]:= ' 4 ';

3 ', ' 8 ': SSS[j]:= ' 6 '; 9 ': SSS[j]:= ' 8 ';

Fin

Fin

Si sss[1]='0 ' , entonces

Inicio

SSS[1]:="";

Eliminar (sss, 1, 1);

Fin ;

twox:= SSS;

Fin;

Inicio

Asignación (entrada, ' Hanoi . in '); p>Inicio

p>

Asignación (salida, 'Hanoi. out');

Restablecer (entrada); Reescribir (salida); readln(n);

s:= ' 1 ';

Para i:=1 a n+1 haz

s:= dosx(s) ;

I :=longitud(s);

s[I]:= chr(ord(s[I])-2);

Escritura contenido;

Cerrar(entrada); cerrar(salida);

Fin.