OLIMP O PIADA A DE IN NFORM MÁTIC CA DEL L ESTA ADO DE E JALI ISCO www.omijal.org.mxx [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 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