Pentru a putea rula codul, te rugăm să te autentifici.

Autentifică-te
main.cpp

Dificilă · 8

Memorie: 64 MB / 8 MB

Timp: 0.05 secunde

I/O: Fișiere

Grădina zoologică este una dintre atracțiile turistice care are succes la toate categoriile de vârstă, reușind să captiveze de la copiii mici până la adulți și chiar bătrâni. Acesta este și cazul grădinii zoologice din New York, care are anual zeci de milioane de vizitatori. Grădina zoologică este organizată în patru mari locații și are de asemenea și un acvariu. În fiecare dintre aceste locații, animalele sunt grupate pe specii, iar cele de același tip împart cuști de diferite mărimi, potrivite pentru habitatul în care trebuie să trăiască. Una dintre cele mai dificile acțiuni pe care trebuie să le îndeplinească îngrijitorii grădinii zoologice este hrănirea animalelor. Dieta lor este diversă de la o specie la alta, iar în fiecare cușcă trebuie luat în considerare numărul de animale rezidente. Pentru ca această acțiune de distribuire a hrănii să fie cât mai optimizată, iar îngrijitorii să poată să o ducă la bun sfârșit într-un timp util, directorul grădinii zoologice a gândit un plan de rearanjare a cuștilor în funcție de cantitatea de hrană necesară fiecăreia. Acestea vor fi organizate crescător în funcție de cantitate pentru ca în locurile în care cantitatea de mâncare este redusă să se trimită o mașină mai mică decât în cele în care cantitățile per cușcă sunt mai mari.

Deoarece locația din Central Park trebuie renovată, directorul a decis ca toate animalele să fie transferate în cea mai mare dintre locații, cea din Bronx. Acest lucru va necesita o rearanjare a întregii grădini zoologice, pentru a se păstra ordonarea în funcție de cantitatea de mâncare ce trebuie livrată zilnic pentru fiecare cușcă.

Cerință

Pentru fiecare cușcă se ține minte în sistemul informațional un id, pentru identificarea acesteia, numărul de animale rezidente și cantitatea de mâncare necesară zilnic acelei cuști (pentru toate animalele, nu doar pentru unul). Sistemul informațional nu este implementat complet și mai are nevoie de câteva funcționalități esențiale.

  1. Directorul are nevoie de o metodă rapidă de aflare a cantității de mâncare necesară unei cuști anume.
  2. Cuștile trebuie să fie dispuse astfel încât cantitățile de mâncare necesare pentru fiecare să fie în ordine crescătoare.
  3. Trebuie introduse în sistem și noile cuști, aduse din cealaltă grădină zoologică, care inițial sunt sortate după id. După aceea, trebuie efectuată rearanjarea grădinii din Bronx pentru a îndeplini noile cerințe ale directorului.

Date de intrare

Fișierul de intrare zoo.in conține, pe prima linie, numărul natural N, reprezentând numărul de cuști aflate în grădina zoologică. Pe următoarele N linii se găsesc câte 3 numere naturale, reprezentând id-ul cuștii, numărul de animale și necesarul de mâncare zilnic pentru cușca citită.

Pe următoarea linie se citește cerința C, care poate fi 1, 2 sau 3.

Pentru cerința 1 (C = 1), pe următoarea linie, se găsește id-ul căutat.

Pentru cerința 2 (C = 2), nu se citește nimic suplimentar.

Pentru cerința 3 (C = 3), pe următoarea linie, se găsește numărul M reprezentând numărul de cuști ce sunt aduse în grădina zoologică. De pe următoarele M linii se citesc informațiile despre cele M cuști: câte 3 numere naturale, reprezentând id-ul cuștii, numărul de animale și necesarul de mâncare zilnic pentru cușca respectivă.

Date de ieșire

Fișierul de ieșire zoo.out va conține, după caz:

  • Pentru cerința 1: mâncarea necesară zilnic pentru id-ul citit sau 0 dacă nu este găsită cușca cu id-ul citit.
  • Pentru cerința 2: toate detaliile despre cușcă (id, numărul de animale și cantitatea de mâncare), câte o cușcă pe rând, ordonate după mâncarea necesară zilnic.
  • Pentru cerința 3: toate detaliile despre cușcă, câte o cușcă pe rând, inclusiv cele noi aduse, ordonate după mâncarea necesară zilnic.

Restricții și precizări

Cerința 1 (30 de puncte)

  • Se asigură că datele sunt introduse crescător după id-urile cuștilor și ele nu sunt obligatoriu numere consecutive

Cerința 2 (20 de puncte)

  • Nicio precizare în plus

Cerința 3 (50 de puncte)

  • Atât cuștile inițiale, cât și cele noi, pot fi într-o ordine aleatoare din punct de vedere al cantității de mâncare necesară zilnic

  • 2 ≤ N ≤ 300.000

  • 1 ≤ id ≤ 2.000.000.000

  • 1 ≤ număr animale ≤ 2.000.000.000

  • 1 ≤ necesar zilnic de mâncare ≤ 2.000.000.000

  • 1 ≤ C ≤ 3

  • 2 ≤ M ≤ 10.000

Exemple

zoo.in

4
11 3 1000
15 1 1000
36 2 2000
46 6 1200
1
36

zoo.out

2000

Explicație

Pentru primul exemplu. Pentru cerința 1 se cere găsirea custii cu id = 36. Aceasta are 2000g de mâncare necesar zilnic.

Pentru al doilea exemplu. Pentru cerința 1 se cere găsirea custii cu id = 50. Aceasta nu exista în lista de custi citite, astfel ca se afișează 0.

Pentru al treilea exemplu. Pentru cerința 2 se cere aranjarea cuștilor crescător în funcție de cantitatea de mâncare necesară zilnic.

Pentru al patrulea exemplu. Pentru cerința 3 se cere aranjarea cuștilor curente și adăugarea noilor cuști astfel încât ordinea de la cerința 2 să se păstreze: aranjarea cuștilor crescător în funcție de cantitatea de mâncare necesară zilnic.

zoo.in

4
11 3 1000
15 1 1000
36 2 2000
46 6 1200
1
50

zoo.out

0

Explicație

Pentru primul exemplu. Pentru cerința 1 se cere găsirea custii cu id = 36. Aceasta are 2000g de mâncare necesar zilnic.

Pentru al doilea exemplu. Pentru cerința 1 se cere găsirea custii cu id = 50. Aceasta nu exista în lista de custi citite, astfel ca se afișează 0.

Pentru al treilea exemplu. Pentru cerința 2 se cere aranjarea cuștilor crescător în funcție de cantitatea de mâncare necesară zilnic.

Pentru al patrulea exemplu. Pentru cerința 3 se cere aranjarea cuștilor curente și adăugarea noilor cuști astfel încât ordinea de la cerința 2 să se păstreze: aranjarea cuștilor crescător în funcție de cantitatea de mâncare necesară zilnic.

zoo.in

4
11 3 1000
15 1 1000
36 2 2000
46 6 1200
2

zoo.out

11 3 1000
15 1 1000
46 6 1200
36 2 2000

Explicație

Pentru primul exemplu. Pentru cerința 1 se cere găsirea custii cu id = 36. Aceasta are 2000g de mâncare necesar zilnic.

Pentru al doilea exemplu. Pentru cerința 1 se cere găsirea custii cu id = 50. Aceasta nu exista în lista de custi citite, astfel ca se afișează 0.

Pentru al treilea exemplu. Pentru cerința 2 se cere aranjarea cuștilor crescător în funcție de cantitatea de mâncare necesară zilnic.

Pentru al patrulea exemplu. Pentru cerința 3 se cere aranjarea cuștilor curente și adăugarea noilor cuști astfel încât ordinea de la cerința 2 să se păstreze: aranjarea cuștilor crescător în funcție de cantitatea de mâncare necesară zilnic.

zoo.in

4
11 3 1000
15 1 1000
36 2 2000
46 6 1200
3
2
12 3 1001
13 4 5000

zoo.out

11 3 1000
15 1 1000
12 3 1001
46 6 1200
36 2 2000
13 4 5000

Explicație

Pentru primul exemplu. Pentru cerința 1 se cere găsirea custii cu id = 36. Aceasta are 2000g de mâncare necesar zilnic.

Pentru al doilea exemplu. Pentru cerința 1 se cere găsirea custii cu id = 50. Aceasta nu exista în lista de custi citite, astfel ca se afișează 0.

Pentru al treilea exemplu. Pentru cerința 2 se cere aranjarea cuștilor crescător în funcție de cantitatea de mâncare necesară zilnic.

Pentru al patrulea exemplu. Pentru cerința 3 se cere aranjarea cuștilor curente și adăugarea noilor cuști astfel încât ordinea de la cerința 2 să se păstreze: aranjarea cuștilor crescător în funcție de cantitatea de mâncare necesară zilnic.

ID #779 Autor OLI 2024, Brașov, clasa a VII-a
Set Olimpiada Locală de Informatică 2024, Brașov, clasa a VII-a Adăugată de Alexis Alexis lexington
Capitol Clasa a IX-a/Probleme avansate/Probleme diverse
Licență

Problema aceasta a fost publicată sub licența CC BY-SA 4.0. Indicațiile sunt publicate sub licența InfoAs Standard License, iar rezolvarea sub licența InfoAs Standard License. Licența InfoAs Standard License nu permite copierea sau modificarea fără acordul scris al autorilor. Platforma și toate funcționalitățile ei rămân în continuare proprietatea intelectuală Aspire Education Labs SRL. © 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.

Indicații oficiale de rezolvare a problemei

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

#include <bits/stdc++.h>

    using namespace std;

    int main() {
        int n;
        cin >> n;
        cout << n * n << endl;
        return 0;
    }

Lorem:

Subtitle

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

Lorem:

Pentru a vizualiza indicațiile problemei, te rugăm să te autentifici.

Indicații oficiale de rezolvare a problemei

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

#include <bits/stdc++.h>

    using namespace std;

    int main() {
        int n;
        cin >> n;
        cout << n * n << endl;
        return 0;
    }

Lorem:

Subtitle

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

Lorem:

Pentru a vizualiza rezolvarea problemei, te rugăm să te autentifici.

Soluții trimise la problema Gradina zoologica

Soluții trimise 172
Soluții de 100 de puncte 15
Soluții de luna aceasta La fel de multe ca luna trecută. 0 +0
Rata de succes Rata dintre numărul de persoane care au obținut 100 de puncte și numărul total de persoane care au încercat problema. 47.83%

Autentifică-te pentru a vedea soluțiile tale.

Autentifică-te
  • Toate soluțiile tale le găsești aici. Găsești toate detaliile evaluării mai târziu, precum punctaje și sfaturi primite.
  • Poți să editezi soluțiile tale și să le retrimiți. Reia mai târziu de unde ai rămas, pentru că poți modifica soluții și să le reevaluezi.
  • Profesorii pot să vadă soluțiile tale și să îți trimită sugestii. Astfel, îți este mai ușor să înveți informatica, primind sfaturi bune chiar de la școală.

Ultimele soluții trimise 172

10 100 10 1000000 10000
10000 100000 1000000 1000 10
10 1000000 10000 100000 100
100000 10 100000 100 10000000
100000 100 100000 10000000 10
10000 100 1000 10000000 10000000
10000000 10000 1000000 1000 1000000
1000 1000000 10 1000000 10000
10 100 1000000 10000 1000
1000000 100000 1000 1000000 10
Tabelul se actualizează în timp real. ?? / ??

Comentarii 0

Autentifică-te pentru a putea comenta.

Autentifică-te