Informatică, întrebare adresată de andreimarciuc7, 8 ani în urmă

Poate cineva sami dea codul de la prob. gogosi de pe pbinfo urget.!!!!!!
Dar sa fie de preferat format cpp.
cerinta este aceasta :Cerința
La magazinul X sunt N persoane așezate la coadă pentru gogoși. Din cauza aglomerației, managerul vrea să împartă persoanele la mai multe case. Deoarece toată lumea trebuie să vadă gogoșile, înălțimea fiecărei persoane trebuie să fie mai mică sau egală decât înălțimile tuturor celor de după el în coadă lui. Mai mult, dacă persoana i în șirul inițial și persoana j în șirul inițial (i < j) ajung în aceeași coadă, persoană i trebuie să fie înaintea persoanei j.

Dându-se N, numărul de persoane și A, înălțimile persoanelor în ordinea inițială, să se afișeze numărul minim de case pe care managerul trebuie să le deschidă.
Multumesc!!


me2018: https://profs.info.uaic.ro/~infogim/2017/concursuri/1/5/gogosi5.pdf
me2018: varianta oficiala difera de varianta de pe pbinfo...N<=10^3 , nu n<=10^6
me2018: dar au modificat limita la memorie
andreimarciuc7: nu merge de ce vreau si eu un cod bn va rog !!!

Răspunsuri la întrebare

Răspuns de me2018
2

#include <fstream>

using namespace std;

ifstream in("gogosi.in");

ofstream out("gogosi.out");

int main()

{

 unsigned short int v[1000000]={0},x,ok ;int i,j,n,grupamaxima=1;

  in>>n;

  in>>x;//primul numar citit este cel maxim in prima grupa

  v[grupamaxima]=x;

 for( i=1; i<n; i++){

   in>>x;

   ok=0;

   for(j=1;j<=grupamaxima&&!ok;j++)

       if(v[j])

           {if(x>=v[j]){v[j]=x;ok=1;}

           }

   if(!ok) {++grupamaxima;v[grupamaxima]=x;}

 }

   out<<grupamaxima;

   return 0;

}


me2018: for(j=1;j<=g;++j)
me2018: #include
using namespace std;
ifstream in("gogosi.in");
ofstream out("gogosi.out");
int v[1000000]={0},x,ok ;
int main()
{int i,j,n,grupamaxima=1,k,mijloc;

in>>n;
in>>x;//primul numar citit este cel maxim in prima grupa

v[grupamaxima]=x;
for( i=1; i in>>x;

j=1;
k=grupamaxima;

while(j<=k)
{
mijloc=(j+k)/2;
if(x>=v[mijloc])k=mijloc-1;
else
if(x }

if(j<=grupamaxima)
v[j]=x;

else
{++grupamaxima;v[grupamaxima]=x;}

}
out<
return 0;
}
me2018: https://www.pbinfo.ro/?pagina=detalii-evaluare&id=13071673
andreimarciuc7: ms
andreimarciuc7: si vezi ca ai si tu greseli dar mesi
andreimarciuc7: nu merge te rog un cod bun nu aveti
me2018: am uat prin copy-paste sin nu sunt copiate toate caracterele
me2018: si nu pot edita raspunsul, ca ti-as face modificarile
me2018: https://wetransfer.com/downloads/4b02dc74c21ac21a6bddbe8b09e27cd320190106154616/78cdc4782f98f8de55f3b91f5a0026d520190106154616/11551b
andreimarciuc7: ms este codul pe care mil doream !!!!!!!!
Alte întrebări interesante