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
Răspunsuri la întrebare
Răspuns de
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;
}
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;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă