Kluczową obserwacją jest to, że minimalna liczba pól między sliderami – tak by nie się wzajemnie nie biły – to dwa pola. Zatem możemy zachłannie, umieszczać slidery: Slider numer 1 na pierwszym polu, slider numer 2 na polu 4, slider numer 3 na polu 7, itd.
Wniosek: Na każdej trójce pól możemy umieścić jeden slider. Wystarczy zatem podaną liczbę pól podzielić przez 3, by otrzymać maksymalną możliwą liczbę sliderów które możemy umieścić by wzajemnie się nie biły.
Musimy jeszcze zauważyć, że
Wystarczy, że do liczby pól dodamy 2. Wówczas podzielenie przez 3 – w C++ dzielenie na liczbach całkowitych obcina część ułamkową – da nam odpowiednią ilość sliderów. Dla przypadku 1. będzie to 1 slider, dla przypadku 2. będą to 2 slidery, i tak dalej.
#include <iostream>
using namespace std;
int main() {
long long liczba_pol, wynik;
cin >> liczba_pol;
wynik = (liczba_pol+2)/3;
cout << wynik << endl;
return 0;
}