Witam!
Mam problem z zadankiem z oig , a dokladniej z zadaniem Apteka
https://szkopul.edu.pl/problemset/problem/mZDGm1hDFvHQwi1VEXmkuIZs/site/?key=statement
Ponizszy kod na 100 punktow dostaje 82 , w 2 przypadkach jest przekroczony czas a w jednym bledna odpowiedz
Licze na jakas podpowiedz 
#include <iostream>
const int N = 1000 * 1000;
using namespace std;
long ceny[N];
long ile_ludzi;
long mini;
long pozycja;
long long cena = 0;
long gdzie_stoi = 0;
int main()
{
std::ios::sync_with_stdio(false);
cin >> ile_ludzi;
for (long i = 0; i < ile_ludzi; i++)
cin >> ceny[i];
pozycja = -1;
mini = ceny[ile_ludzi - 1];
while (pozycja != ile_ludzi - 1)
{
for (long i = pozycja + 1; i < ile_ludzi; i++)
{
if (mini >= ceny[i])
{
mini = ceny[i];
pozycja = i;
}
}
cena += mini * (pozycja + 1 - gdzie_stoi);
gdzie_stoi = pozycja + 1;
mini = ceny[ile_ludzi - 1];
//cout<<mini<<endl;
//cout<<pozycja<<endl;
}
cout << cena;
return 0;
}