• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zadanie szkopuł pudełka

0 głosów
230 wizyt
pytanie zadane 12 września 2023 w C i C++ przez Sophix Początkujący (270 p.)

Hej, mam problem ze skróceniem działania programu w zadaniu ze szkopuła. Link do zadania:https://szkopul.edu.pl/problemset/problem/pudelka/site/?key=statement

Z góry dziękuje za pomoc.

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main (){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    vector<long long> wysokosci(10000001);
    vector<long long>::iterator it;
    long long n, i, p; 
    int m;
    cin >> n;
    for (i=1; i<=n; ++i){
        cin >> wysokosci[i];
    }
    sort (wysokosci.begin()+1, wysokosci.begin()+n+1);
    cin >> m;
    for (i=0; i<m; ++i){
        cin >> p;
        it=lower_bound(wysokosci.begin()+1, wysokosci.begin()+n+1, p);
        if (*it==p){
            cout << it-wysokosci.begin() << '\n';
            }
        else
            cout << "Kup pudelko!" << '\n';
    }
    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 13 września 2023 przez Great Stary wyjadacz (12,660 p.)
wybrane 2 lipca 2024 przez Sophix
 
Najlepsza

Przypadek gdy nie znaleziono wartości w podanym zakresie - lower_bound zwróci ostatni iterator:

if (it != wysokosci.begin() + n + 1 and *it == p) {

Kod inaczej:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(nullptr);

    int count;
    std::cin >> count;
    std::vector<int> boxes(count);
    for (auto& box : boxes) {
        std::cin >> box;
    }

    int queries;
    std::cin >> queries;
    while (queries--) {
        int height;
        std::cin >> height;
        auto it = std::lower_bound(boxes.begin(), boxes.end(), height);
        if (it != boxes.end() and *it == height) {
            std::cout << it - boxes.begin() + 1 << "\n";
        } else {
            std::cout << "Kup pudelko!\n";
        }
    }
}

Podobne pytania

0 głosów
1 odpowiedź 428 wizyt
pytanie zadane 9 września 2023 w C i C++ przez Sophix Początkujący (270 p.)
+1 głos
0 odpowiedzi 250 wizyt
pytanie zadane 25 lipca 2023 w C i C++ przez Sophix Początkujący (270 p.)
0 głosów
1 odpowiedź 768 wizyt
pytanie zadane 30 maja 2023 w C i C++ przez Szyszka Gaduła (3,530 p.)

93,731 zapytań

142,668 odpowiedzi

323,286 komentarzy

63,290 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...