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

Autentifică-te
main.cpp

ID #793 · Simulare OJI 2024, ediția 2 · Sortarea vectorilor

Problema Anepece

Dificilă · 8

Memorie: 64 MB / 16 MB

Timp: 0.5 secunde

I/O: Fișiere

Autoritatea Națională pentru Protecția Consumatorilor (pe scurt, ANPC) a început să ia decizii drastice în ceea ce privește siguranța clienților restaurantelor. Una dintre măsurile de protecție se referă la pregătirea în cazul unui incendiu.

Restaurantul lui Mitică (numit sugestiv Meatică) trebuie să dea acum rapoarte cu privire la numărul de clienți prezenți în orice moment în local. Folosind un aparat de detectare poziționat la intrarea în restaurant, Mitică știe pentru orice client dintre cei n pe care îi are într-o zi, momentul de timp în care intră și în care iese din restaurant (reprezentate prin numere naturale). Folosind aceste informații, Mitică este responsabil să ofere rapoarte corecte, răspunzând la una dintre cele trei tipuri de întrebări pe care le poate primi. Deoarece domeniul HoReCa este unul foarte obositor, acesta îți cere ajutorul ție, elev de liceu, să îi generezi răspunsurile pentru raportul său.

Cerință

Se dau numerele naturale n și c, împreună cu n perechi de numere naturale, reprezentând timpul de intrare și de ieșire a fiecărui client din restaurant. În funcție de valoarea lui c, să se afle:

  1. Dacă c = 1, care este timpul maxim petrecut de oricare dintre cele n persoane?
  2. Dacă c = 2, care este parantezarea corespunzătoare intrărilor și ieșirilor celor n persoane? Pe scurt, dacă am așeza liniar timpurile corespunzătoare tuturor persoanelor, iar pentru un timp de intrare am afișa caracterul (, iar pentru un timp de ieșire am afișa caracterul ), cum ar arăta parantezarea?
  3. Dacă c = 3, care este numărul maxim de persoane care se află în orice moment în restaurant?

Date de intrare

Fișierul de intrare anepece.in conține pe prima linie numerele naturale n și c, separate printr-un spațiu. Pe următoarele n linii se află câte două numere naturale separate prin câte un spațiu, reprezentând, pentru fiecare persoană în parte, timpul de intrare și de ieșire din restaurant.

Date de ieșire

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

  1. Dacă c = 1, se afișează numărul natural reprezentând răspunsul la prima întrebare.
  2. Dacă c = 2, se afișează 2 × n caractere paranteză deschisă/închisă ( și ) nedespărțite prin spații, reprezentând răspunsul la a doua întrebare.
  3. Dacă c = 3, se afișează numărul natural reprezentând răspunsul la a treia întrebare.

Restricții și precizări

  • 1 ≤ n ≤ 200.000
  • 1 ≤ c ≤ 3
  • 1 ≤ timpurile de intrare/ieșire pentru toate persoanele ≤ 1.000.000.000
  • Pentru simplitate, toate valorile de timp sunt distincte
  • Pentru toate persoanele, timpul de intrare este strict mai mic decât timpul de ieșire
  • Considerăm că persoana se află în restaurant incluzând timpul de intrare și de ieșire

Subtask 1 (12 puncte)

  • c = 1

Subtask 2 (40 de puncte)

  • c = 2 sau c = 3
  • 1 ≤ timpurile de intrare/ieșire ≤ 1.000.000

Subtask 3 (48 de puncte)

  • c = 2 sau c = 3

Exemple

anepece.in

3 1
1 8
4 5
6 9

anepece.out

8

Explicație

Toate cele trei exemple reprezintă același scenariu, însă întrebări diferite. Timpul maxim pe care îl petrece o persoană în restaurant este timpul primei persoane: 8 - 1 + 1 = 8.

Parantezarea este (()()), pentru că, pe axa timpului, mai întâi intră persoana 1, după care intră persoana 2, după care iese persoana 2, după care intră persoana 3, după care iese persoana 1, după care iese persoana 3.

Numărul maxim de persoane prezente în restaurant într-un moment de timp anume este 2, de pildă în momentele de timp 4, 5, 6, 7, 8.

anepece.in

3 2
1 8
4 5
6 9

anepece.out

(()())

Explicație

Toate cele trei exemple reprezintă același scenariu, însă întrebări diferite. Timpul maxim pe care îl petrece o persoană în restaurant este timpul primei persoane: 8 - 1 + 1 = 8.

Parantezarea este (()()), pentru că, pe axa timpului, mai întâi intră persoana 1, după care intră persoana 2, după care iese persoana 2, după care intră persoana 3, după care iese persoana 1, după care iese persoana 3.

Numărul maxim de persoane prezente în restaurant într-un moment de timp anume este 2, de pildă în momentele de timp 4, 5, 6, 7, 8.

anepece.in

3 3
1 8
4 5
6 9

anepece.out

2

Explicație

Toate cele trei exemple reprezintă același scenariu, însă întrebări diferite. Timpul maxim pe care îl petrece o persoană în restaurant este timpul primei persoane: 8 - 1 + 1 = 8.

Parantezarea este (()()), pentru că, pe axa timpului, mai întâi intră persoana 1, după care intră persoana 2, după care iese persoana 2, după care intră persoana 3, după care iese persoana 1, după care iese persoana 3.

Numărul maxim de persoane prezente în restaurant într-un moment de timp anume este 2, de pildă în momentele de timp 4, 5, 6, 7, 8.

ID #793 Autor Dominic Satnoianu
Set Simulare OJI 2024, ediția 2 Adăugată de Alexis Alexis lexington
Capitol Clasa a IX-a/Vectori (tablouri unidimensionale)/Sortarea vectorilor
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 Anepece

Soluții trimise 186
Soluții de 100 de puncte 22
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. 45%

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 186

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

Comentarii 0

Autentifică-te pentru a putea comenta.

Autentifică-te