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

Autentifică-te
main.cpp

Dificilă · 8

Memorie: 64 MB / 32 MB

Timp: 2.5 secunde

I/O: Fișiere

Primăria Brașov vrea să amenajeze un parc de divertisment pentru cetățenii orașului. Cum suntem la munte, zona în care urmează a fi amenajat acest parc este denivelată. Despre fiecare bucată de 10 x 10 m știm altitudinea medie (luată relativ cu un reper ales de proiectanți). În acest parc se dorește a se amenaja mai multe lacuri astfel: se alege un număr L, iar toate zonele ce au înălțimea (strict) sub acest L vor fi umplute de apă. Cum încă nu sunt siguri cu privire la cum vor să amenajeze parcul, sunteți rugați să ajutați prin răspunderea la următoarele cerințe.

Cerință

Știind harta parcului (de N x M), avem de răspuns la trei întrebări:

  1. Pentru o zonă dată și un nivel L, câte lacuri vor fi formate?
  2. Pentru o zonă dată, care este nivelul minim L care ar trebui ales pentru a avea un singur lac?
  3. Pentru o zonă dată, ce nivel L ar trebui ales pentru a avea un număr cât mai egal de parcele acoperite de apă și parcele neacoperite de apă (diferența în modul dintre cele două să fie minimă)?

Date de intrare

Fișierul de intrare parc.in conține pe prima linie un singur număr natural C, care reprezintă cerința de rezolvat. A doua linie a fișierului conține două numere naturale separate printr-un spațiu N și M, care reprezintă dimensiunile matricei ce reprezintă harta parcului. Următoarele N linii conțin câte M numere naturale separate prin câte un spațiu ce reprezintă elementele matricei ce reprezintă denivelările parcului. În cazul în care C este 1, pe următoarea linie se află numărul L, reprezentat nivelul până la care se umple cu apă.

Date de ieșire

Fișierul de ieșire parc.out va conține o linie astfel:

  1. Dacă C = 1, atunci se va rezolva doar punctul 1 din cerință : Se va afișa un singur număr natural reprezentând numărul de lacuri formate.
  2. Dacă C = 2, atunci se va rezolva doar punctul 2 din cerință : Se va afișa un singur număr natural, reprezentând nivelul necesar pentru a forma un singur lac.
  3. Dacă C = 3, atunci se va rezolva doar punctul 3 din cerință : Se va afișa un singur număr natural, reprezentând nivelul necesar pentru a forma diferența în modul dintre numărul de parcele acoperite și parcele neacoperite minimă.

Restricții și precizări

  • 1 ≤ C ≤ 3
  • 1 ≤ N, M ≤ 1000
  • 20% din teste au C = 1, 30% din teste au C = 2, iar restul de 50% au C = 3
  • Un lac se consideră ca fiind format doar din elemente adiacente pe cele 4 direcții: N, S, E, V
  • 0 ≤ elementele din matrice ≤ 109

Exemple

parc.in

1
3 5
2 1 3 4 5
3 9 4 7 3
2 9 1 9 3
5

parc.out

2

Explicație

Pentru primul exemplu. După umplerea zonelor care se află la un nivel mai mic de 5, parcul arată astfel:

Imagine

Pentru al doilea exemplu. Pentru L = 6, parcul arată (cu bold sunt zonele neacoperite de apă):

Imagine2

Pentru al treilea exemplu. Cel mai mare nivel pentru care numărul de zone acoperite de apă este mai mic decât numărul de zone neacoperite este L = 3 (cu bold sunt zonele neacoperite de apă):

Imagine3

Astfel diferența în modul dintre numărul de parcele acoperite și cele neacoperite este |nracoperite - nrneacoperite| = |4 - 11| = 7.

Pentru L = 4:

Imagine4

Astfel diferența devine: |nracoperite - nrneacoperite| = |8 - 7| = 1.

Astfel, cel mai mare număr pentru care diferența minimă este 4.

parc.in

2
3 5
2 1 3 4 5
3 9 4 7 3
2 9 1 9 3

parc.out

6

Explicație

Pentru primul exemplu. După umplerea zonelor care se află la un nivel mai mic de 5, parcul arată astfel:

Imagine

Pentru al doilea exemplu. Pentru L = 6, parcul arată (cu bold sunt zonele neacoperite de apă):

Imagine2

Pentru al treilea exemplu. Cel mai mare nivel pentru care numărul de zone acoperite de apă este mai mic decât numărul de zone neacoperite este L = 3 (cu bold sunt zonele neacoperite de apă):

Imagine3

Astfel diferența în modul dintre numărul de parcele acoperite și cele neacoperite este |nracoperite - nrneacoperite| = |4 - 11| = 7.

Pentru L = 4:

Imagine4

Astfel diferența devine: |nracoperite - nrneacoperite| = |8 - 7| = 1.

Astfel, cel mai mare număr pentru care diferența minimă este 4.

parc.in

3
3 5
2 1 3 4 5
3 9 4 7 3
2 9 1 9 3

parc.out

4

Explicație

Pentru primul exemplu. După umplerea zonelor care se află la un nivel mai mic de 5, parcul arată astfel:

Imagine

Pentru al doilea exemplu. Pentru L = 6, parcul arată (cu bold sunt zonele neacoperite de apă):

Imagine2

Pentru al treilea exemplu. Cel mai mare nivel pentru care numărul de zone acoperite de apă este mai mic decât numărul de zone neacoperite este L = 3 (cu bold sunt zonele neacoperite de apă):

Imagine3

Astfel diferența în modul dintre numărul de parcele acoperite și cele neacoperite este |nracoperite - nrneacoperite| = |4 - 11| = 7.

Pentru L = 4:

Imagine4

Astfel diferența devine: |nracoperite - nrneacoperite| = |8 - 7| = 1.

Astfel, cel mai mare număr pentru care diferența minimă este 4.

ID #792 Autor OLI 2024, Brașov, clasa a X-a
Set Olimpiada Locală de Informatică 2024, Brașov, clasa a X-a Adăugată de Alexis Alexis lexington
Capitol Clasa a X-a/Structuri de date liniare/Probleme cu coadă
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 Parc

Soluții trimise 317
Soluții de 100 de puncte 6
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. 11.11%

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 317

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

Comentarii 0

Autentifică-te pentru a putea comenta.

Autentifică-te