Rezolvare completă PbInfo #2279 ConcursPerf

Cerința

Chef vrea să organizeze un concurs. Previziunea nivelurilor de dificultate a problemelor poate fi o sarcină descurajantă. Chef vrea să echilibreze nivelurile de dificultate ale problemelor.

Să presupunem că un concurs a avut P participanți în total. O problemă care a fost rezolvată de cel puțin jumătate dintre participanți (adică P/2) este considerată ușoară. O problemă rezolvată de participanții de cel mult P/10 este considerată dificilă.

Chef vrea echilibru. Potrivit lui, un concurs echilibrat trebuie să aibă exact 1 problemă ușoară și exact 2 probleme grele. Vi se oferă descrierea problemelor N și numărul de participanți care rezolvă aceste probleme. Puteți spune dacă concursul a fost echilibrat sau nu?

Date de intrare

Primul rând conține un număr întreg T care indică numărul de cazuri de testare.

Prima linie a fiecărui caz de testat conține două numere întregi N și P indicând numărul de probleme, respectiv numărul de participanți.

Cea de-a doua linie conține N numere întregi, separate prin spațiu, al căror număr indică numărul de participanți care rezolvă problema cu numărul de ordine i.

Date de ieșire

Pentru fiecare caz, afișati da, dacă concursul este echilibrat, sau nu.

Restricții și precizări

  • 1 ≤ T, N ≤ 500
  • 1 ≤ P ≤ 10^8^
  • 1 ≤ numărul de participanți care rezolvă o problemă ≤ P

Exemplu

Intrare

6
3 100
10 1 100
3 100
11 1 100
3 100
10 1 10
3 100
10 1 50
4 100
50 50 50 50
4 100
1 1 1 1

Ieșire

da
nu
nu
da
nu
nu

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema ConcursPerf:

#include <stdio.h>
int t, n, cp, hp, p, i, rez;
int main() {
    scanf("%d", &t);
    while (t) {
        scanf("%d%d", &n, &p);
        cp = hp = 0;
        for (i=1; i<=n; i++) {
            scanf("%d", &rez);
            if (p/2 <= rez) cp++;
            else if (p/10 >= rez) hp++;
        }
        if (cp == 1 && hp == 2) printf("%s\n", "da");
        else printf("%s\n", "nu");
        t--;
    }
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2279 ConcursPerf

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2279 ConcursPerf de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!