Szczegółowe omówienie zadania Przyciski:
Link do powyższego omówienia zadania Przyciski:
https://youtu.be/IkKrmjnpguQ
https://youtu.be/IkKrmjnpguQ
Link do treści zadania Przyciski:
https://szkopul.edu.pl/problemset/problem/aPqgk8oaUsM4nB6FLjxehRPe/site
https://szkopul.edu.pl/problemset/problem/aPqgk8oaUsM4nB6FLjxehRPe/site
Zadanie Przyciski to typowe zadanie na pomysł, które nie wymaga zaawansowanej algorytmiki.
Zadanie pochodzi z II etapu Olimpiady Informatycznej Gimnazjalistów – poprzednika Olimpiady Informatycznej Juniorów.
——–
Jak się uczyć na podstawie tego zadania?
https://youtu.be/QgLyXYmFQeU?t=2019
Pamiętaj by zajrzeć max 1 raz – wtedy się rozwijasz:
https://youtu.be/pkLXuuOe_qA?t=3625
——-
Kod C++ programu Przyciski, który jest omówiony w powyższym filmie i który otrzymuje 100%
–
#include <bits/stdc++.h>
using namespace std;
const int MAX_PRZYCISKOW = 1000010;
int wartosci_przyciskow[MAX_PRZYCISKOW];
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int liczba_przyciskow, liczba_operacji;
int max_poprzedni, max_nastepny;
int aktualny_przycisk;
int i;
cin >> liczba_przyciskow;
cin >> liczba_operacji;
max_poprzedni = max_nastepny = 0;
for (i=1; i<=liczba_operacji; ++i){
cin >> aktualny_przycisk;
if (aktualny_przycisk > liczba_przyciskow){
max_poprzedni = max_nastepny;
continue;
}
if ( wartosci_przyciskow[aktualny_przycisk] < max_poprzedni )
wartosci_przyciskow[aktualny_przycisk] = max_poprzedni;
++wartosci_przyciskow[aktualny_przycisk];
max_nastepny = max(max_nastepny,wartosci_przyciskow[aktualny_przycisk]);
}
for (i=1; i<=liczba_przyciskow; ++i)
if ( wartosci_przyciskow[i] > max_poprzedni )
cout << wartosci_przyciskow[i] << " ";
else
cout << max_poprzedni << " ";
cout << "\n";
return 0;
}
Link do pliku ze wzorcowym kodem C++ zadania Przyciski