Fișierul intrare/ieșire roata.in, roata.out Sursă OJI 2012 clasa a 9-a
Autor Ciprian Cheșcă Adăugată de avatar Isabela_coman Coman Isabela Patricia Isabela_coman
Timp de execuție pe test 0.8 sec Limită de memorie 2048 KB
Scorul tău N/A Dificultate N/A
open book Poți vedea testele pentru această problemă accesând atașamentele .

Roata (clasa a 9-a)

Una dintre atracțiile celebrului parc de distracții Prater din Viena este Marea Roată Vieneză. Din ea se poate admira priveliștea întregii Viene. Roata are n cabine, numerotate de la 1 la n în sens orar și dispuse simetric pe circumferința roții. Îmbarcarea clienților se face în cabina în care roata este tangentă cu solul, iar rotirea începe cu cabina 1 aflată în poziția de îmbarcare și se face în sens antiorar. Un client plătește pentru o rotire 1 EUR și poate cumpăra un număr oarecare de rotiri.

Cei p clienți care doresc utilizarea roții trebuie să respecte următoarea procedură: clientul cu numărul de ordine i își cumpără un bilet pe care sunt înscrise numărul său de ordine și numărul de rotiri ci, 1 ≤ ip, apoi se așază la rând. Când în poziția de îmbarcare este o cabină liberă sau se eliberează o cabină, roata se oprește și urcă următorul clientul. Un client coboară după ce se efectuează numărul de rotiri înscris pe bilet.

Cerință

Să se scrie un program care, cunoscând numărul n de cabine al roții, numărul p de clienți, precum și numărul de rotiri cumpărate de fiecare client, ci, 1 ≤ ip, să calculeze:

  • suma totală încasată de administratorul roții de la clienți;
  • ordinea în care coboară clienții din roată;
  • numărul cabinei din care coboară ultimul client.

Date de intrare

Fișierul de intrare roata.in conține pe primul rând numărul natural n, pe al doilea rând numărul natural p, iar pe al treilea rând numerele naturale ci, 1 ≤ ip, separate printr-un spațiu, cu semnificațiile de mai sus.

Date de ieșire

Fișierul de ieșire roata.out va conține pe prima linie suma totală încasată, pe a doua linie numerele de ordine ale clienților, în ordinea coborârii, separate printr-un spațiu, iar pe a treia linie numărul cabinei din care va coborî ultimul client

Restricții

  • 2 ≤ n ≤ 360
  • 1 ≤ p ≤ 100 000
  • 1 ≤ ci ≤ 100 000, pentru 1 ≤ ip

Exemplu

roata.in roata.out Explicații
4
7
6 4 1 5 2 8 3
29
3 5 2 4 1 7 6
3
Roata are n=4 cabine și numărul de clienți este p=7.
Primul client cumpără 6 rotiri, al doilea 4 rotiri , ... ,
iar al șaptelea client cumpără 3 rotiri. Suma totală încasată este de 29 EUR.
După ce primii 4 clienți se urcă în roată și se efectuează o rotire completă,
primul care coboară este clientul al 3-lea și imediat se urcă clientul al 5-lea.
După încă 2 rotiri, clientul al 5-lea coboară și se urcă clientul al 6-lea. După
încă o rotire coboară clientul al 2-lea și se urcă al 7-lea client. Ultimii 4 clienți
coboară în ordinea 4,1,7,6. Cabina din care coboară ultimul client este cabina cu numărul 3.

Trebuie să te autentifici pentru a trimite soluții. Click aici

Indicii de rezolvare

Arată 2 categorii