Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- int main()
- {
- int n;
- cin>>n;
- int niza[n+1];
- vector<int>towers;
- for (int i=0;i<n;i++)
- {
- cin>>niza[i];
- }
- for(int i=0;i<n;i++)
- {
- int left_bound=0;
- int right_bound = (int) towers.size()-1;
- bool dali=false;
- int pozicija_na_zamena = -1;
- while (left_bound <= right_bound)
- {
- int mid= (right_bound+left_bound)/2;
- if (niza[i]<towers[mid])
- {
- right_bound=mid-1;
- pozicija_na_zamena = mid;
- dali=true;
- }
- else
- {
- left_bound=mid+1;
- }
- }
- // cout << niza[i] << " " << dali << " " << pozicija_na_zamena << endl;
- if (dali==false)
- {
- towers.push_back(niza[i]);
- }
- else
- {
- towers[pozicija_na_zamena] = niza[i];
- }
- }
- cout<<towers.size();
- return 0;
- }
- /*
- 5
- 3 8 2 1 5
- Tower I: 1
- Tower II: 5
- Tower III: 5
- Tower IV: 6
- Tower V: 7
- .
- .
- .
- odi od levo kon desno, proveri dali moze da se postavi nekade tower so pomala golemina, ako moze postavi go, vo sportivno zapocni nov
- */
Advertisement
Add Comment
Please, Sign In to add comment