O OLIMP DEL PIADA L ESTA A DE IN ADO DE NFORM E JALI

Anuncio
OLIMP
O
PIADA
A DE IN
NFORM
MÁTIC
CA
DEL
L ESTA
ADO DE
E JALI
ISCO
www.omijal.org.mxx maando@omijal.o
org.mx tel. (33) 3334.5654 Problema 2
2 : quiere llugar ? Nombrre del archivvo : lugar.cp
pp ó lugar..c Hisstoria Es momento d
de la Premiacción de OMIIJAL2010, nuestro padrino es una p
persona muyy famosa y reespetada y eeso atrajo aa muchos vissitantes exteernos que d
desean entraar y ver cóm
mo es posible que OMIJAL tenga tan
nta fuerza y convocatoria, Robochaarro está encargado de la Seguridad
d del evento
o y ha hecho
o una fila de invitados a a las afuerass del auditorio del CETii Colomos, el e cree tienee todo controlado pero
o para su quienes por una módica cuota consiguen que gente que sorrpresa han aaparecido los “consiguee lugares” , q
apenas está lleegando pued
da meterse aa la fila. e
atrás de la persona que se in
ntrodujo ileggalmente a la fila se Estto ocasiona que las perrsonas que están mo
olestan cambiando de esstado de ániimo poco a p
poco, los esttados de ánimo son: 1. CONTENTO 2. SERIO 3. MOLESSTO 4. ENOJADISIMO 5. ….. 6. ……. Por lo que si a una perssona que esstá contentaa (todos in
nician contentos) se le forma una persona ileggalmente deelante de ella, entonces cambia de eestado de án
nimo a seria,, y si está seria cambia aa molesta y ssi está molessta cambia a enojadísimaa y así sucessivamente. Pro
oblema: Realiza un programa que ssimule el pro
oblema anteerior, mostraando cómo q
quedan los eestados de áánimo de lass personas al final de ace
eptar que see “cuelen” een la fila un número N de personass en las posiciones X de la fila. El eestado de án
nimo inicial de las N perrsonas que se encontrab
ban inicialmeente en la fila es 1 ( contentos) Se deberá indicar el estado
o de ánimo d
de todas las personas en
n la fila (incluyendo las q
que llegaron
n tarde) después de qu
ue las Q perssonas se mettieron en la ffila. Todas las perso
onas que se metan a la ffila por que llegaron tarde, tendrán estado de áánimo inicial de 0 ( que cinismo!!!! ). n muy discreetos, hasta n
no haber mettido a la prim
mer personaa entonces m
meten a Loss “consigue lugares” son
la ssegunda, ess decir van ccolando gentte de 1 en 1. OLIMP
O
PIADA
A DE IN
NFORM
MÁTIC
CA
DEL
L ESTA
ADO DE
E JALI
ISCO
www.omijal.org.mxx maando@omijal.o
org.mx tel. (33) 3334.5654 Ejemplo: De
escripción: En
ntrada: 5 3 1 6 1 Lín
nea 1: Dos eenteros correespondientees a los valorres de N y Q.. Lín
nea 2: Q núm
meros enteros indicando
o las posiciones donde laas personas qu
ue llegaron tarde se mettieron, Qi ind
dica que la i‐‐ésima perso
ona se metió
ó en
n la fila, exacctamente delante de la p
persona Qi.
Saalida: 0 1 3 3 3 3 1 4
4 Lín
nea 1: Deberá de conten
ner N+Q núm
meros que in
ndican los esstados de án
nimo de las N
N + Q person
nas en la fila después dee que la las p
personas quee lle
egaron tardee se metieron
n a la fila. N == personas que se encuentran iniciaalmente en la fila. Q == personas que llegaron
n tarde y se meterán en la fila Lim
mites: 1 <<= N, Q <= 1,,000 1 <<= Qi <= N + i OLIMP
O
PIADA
A DE IN
NFORM
MÁTIC
CA
DEL
L ESTA
ADO DE
E JALI
ISCO
www.omijal.org.mxx maando@omijal.o
org.mx tel. (33) 3334.5654 So
olución: #in
nclude <io
ostream>
ing namesp
pace std;
usi
ruct nodo
str
{
ue;
int valu
nodo *ne
ext;
}li
ista;
id listaDe
e(int);
voi
voi
id muestra
a(void);
voi
id mete(in
nt);
t main()
int
{
, col;
int len,
cin >> len
l
>> col;
;
listaDe(
(len);
while(co
ol--)
{
cin >> len;
e(len);
mete
}
muestra(
();
return 0;
0
}
id listaDe
e(int x)
voi
{
nodo *ll
l;
ll = &li
ista;
ll->valu
ue = 0;
ll->next
t = new nod
do;
ll = ll->next;
while(x--)
{
ll->
>value = 1;
;
ll->
>next = new
w nodo;
ll = ll->next;
;
}
ll->next
t = ll;
}
voi
id muestra
a(void)
{
nodo *ll
l = &lista;
;
ll = ll->next;
while(ll
l!=ll->next
t)
{
cout
t << ll->va
alue;
ll = ll->next;
;
}
}
OLIMP
O
PIADA
A DE IN
NFORM
MÁTIC
CA
DEL
L ESTA
ADO DE
E JALI
ISCO
www.omijal.org.mxx maando@omijal.o
org.mx tel. (33) 3334.5654 id mete(in
nt x)
voi
{
nodo *ll
l = &lista,
, *prev = ll;
ll = ll->next;
while(--x)
{
prev
v = ll;
ll = ll->next;
;
}
mp = new no
odo;
nodo *tm
tmp->val
lue = 0;
tmp->nex
xt = ll;
prev->ne
ext = tmp;
while(ll
l!=ll->next
t)
{
ll->
>value++;
ll = ll->next;
;
}
}
OLIMP
O
PIADA
A DE IN
NFORM
MÁTIC
CA
DEL
L ESTA
ADO DE
E JALI
ISCO
www.omijal.org.mxx maando@omijal.o
org.mx tel. (33) 3334.5654 So
olución Alternativa: #in
nclude<std
dio.h>
t Cola[200
00], n, q;
int
t main() {
int
scanf("%
%d%d", &n, &q);
for (int
t i=0; i<n;
; i++)
Cola
a[i] = 1;
for (int
t i=0, a; i<q;
i
i++) {
scan
nf("%d", &a
a);
for (int j=n+i
i; j>=a; j--)
j
Cola[j] = Cola[j-1] + 1;
Cola
a[a-1] = 0;
;
}
for (int
t i=0; i<n+
+q; i++)
prin
ntf("%d ", Cola[i]);
;
return 0;
0
}
OLIMP
O
PIADA
A DE IN
NFORM
MÁTIC
CA
DEL
L ESTA
ADO DE
E JALI
ISCO
www.omijal.org.mxx maando@omijal.o
org.mx tel. (33) 3334.5654 Caasos de pru
ueba: Caso 1: Ent
trada:
42 18
35 13 30 20 25 31 35 14
1 6 45 38
8 27 26 52 28 30 14 9
Sal
lida:
1 1 1 1 1 0 2 2 0 3 3 3 3 3 1 3 3 6 6 6 6 6 6 4 7 7 7 2 8 2 4 2 8 12 12 12 12 12
1 8 13
11 14 8 6 16
6 16 16 16 16 15 17 7 18 18 18
8 4 19 19 19 19
Caso 2: Ent
trada:
42 5
39 25 29 8 34
3
Sal
lida:
1 1 1 1 1 1 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 3 3 3 1 4 4 4 0 5 5 5 5 5 5 5 5 4
6 6 6 6
Caso 3: Ent
trada:
17 19
6 12
1 10 12 10
1 22 18 12
2 25 6 13 4 3 3 16 10
1 12 12 12
1
Sal
lida:
1 1 0 1 3 2 4 4 3 0 5 0 1 2 10 10 10 8 9 4 8 10 15
5 12 16 14 17 17 11 18 18 18 18
1 12
10 20
Caso 4: Ent
trada:
4 19
1
4 5 5 5 6 8 4 7 2 12 11
1 6 15 7 1 11 1 18 15
Sal
lida:
0 1 3 2 4 4 3 2 2 6 6 1 6 8 0 11
1 6 10 1 8 6 17 20
Caso 5: Ent
trada:
49 47
41 41 49 35
76 69 80 13
Sal
lida:
1 1 1 0 2 0
14 12 15 13
30 30 30 30
15 48
34 49 27 34
3 15 26 57
5 25 8 33 60 39 32 6 45 13 10
0 57 35 66
6 4 61 58 54
5 64
73 54 34 12
1 26 28 6 88 15 54 15 64 82 89
3 2 4 4 3 2 1 7 0 1 4 10 10 7 11 11 11
1 11 10 12 12 12 3 13
1 3 14 14 14 14
6 17 17 16
6 9 13 20 14 21 21 21
2 21 21 14
1 20 1 24 23 13 26 25 27 8 28
8 0 11
12 30 15 32
3 13 11 36
3 36 36 36
6 11 32 0 39 11 19 41
4 38 28 0 33 15 46 46 6
Caso 6: Ent
trada:
48 13
35 12 12 22 48 17 4 10
0 56 26 33
3 30 22
Sal
lida:
1 1 1 0 2 2 2 2 2 0 3 3 3 2 3 5 5 5 2 6 6 0 7 7 7 4 1 9 9 9 1 10 10 10
1 2 11
11 11 11 11 11 11 11 11
1 10 12 12
1 12 12 12
2 12 12 12
2 12 7 13 13
1 13 13 4 14
OLIMP
O
PIADA
A DE IN
NFORM
MÁTIC
CA
DEL
L ESTA
ADO DE
E JALI
ISCO
www.omijal.org.mxx maando@omijal.o
org.mx tel. (33) 3334.5654 Caso 7: Ent
trada:
25 17
6 12
1 6 4 28 8 12 10 22
2 20 20 26
6 28 16 25 23 19
Sal
lida:
1 1 1 0 2 2 1 0 3 0 6 6 1 7 7 0 8 6 0 10 10 2 3 1 13 13 2 6 15 4 16 4 17 17 17 17 17
17 17 12 18 18
Caso 8: Ent
trada:
7 31
3
6 1 1 2 8 12
2 4 4 10 10
0 10 4 8 2 12 19 11 21 25 23 7 26 2 10 15 5 32 9 19 20 1
Sal
lida:
0 1 1 2 3 1 6 4 5 1 4 8 3 14 7 15 6 3 17 1 1 10 20
0 14 15 16 19 24 10 9 25 9 28 8 23 4
12 32
Caso 9: Ent
trada:
39 1
6
Sal
lida:
1 1 1 1 1 0 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Caso 10: Ent
trada:
28 18
5 17
1 19 9 16
6 13 31 3 26
2 6 22 12
2 16 27 21 4 20 12
Sal
lida:
1 1 0 0 3 3 1 3 5 5 5 0 4 2 8 8 8 2 6 10 1 11 11 3 9 13 13 6 12 15 4 13 17 17 9 18 18
18 18 18 18 11 19 19 19
1 19
Descargar