Pb Domino

Lasă un comentariu

  1. Enunt:
    Se dau n piese de domino. Fiecare piesa poate fi rotita cu 180°. Sa se determine subsirul de piese de lungime maxima astfel incat oricare doua piese alaturate sa aiba un numar in comun.Date de intrare: Fisierul “domino.in” contine pe fiecare linie cate doua numere corespunzatoare unei piese. 

    Date de iesire: Fisierul “domino.out” va contine lungimea maxima a sirului si elementele acestuia.

  2. Exemplu:
    Fisierul „domino.out„:
    v.first: 5 1 2 3 1 6 5 5 2 1 5 5 3
    v.sec: 6 1 5 2 5 4 1 3 1 4 5 2 3 

    Fisierul „domino.out”:
    Lungimea max:6
    (6,5) (5,2) (2,3) (3,5) (5,5) (5,2)

  3. Program:

#include<iostream.h>

#include<fstream.h>

ofstream g(“domino.out”);

typedef struct {int first, sec;}PIESA;

PIESA v[100];

int d[2][100],poz[2][100],n;

void cit()

{n=0;

ifstream f(“domino.in”);

while(!f.eof())

f>>v[++n].first>>v[n].sec;

f.close();

}

void dinamica()

{int i,j,max0,max1,p0,p1;

d[0][n]=d[1][n]=1;

poz[0][n]=poz[1][n]=0;

for(i=n-1;i>=1;i–)

{max0=max1=0;

p0=p1=0;

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

{if(v[i].sec==v[j].first && d[0][j]>max0){max0=d[0][j];

p0=j;}

if(v[i].sec==v[j].sec && d[1][j]>max0){max0=d[1][j];

p0=j;}

if(v[i].first==v[j].first && d[0][j]>max1){max1=d[0][j];

p1=j;}

if(v[i].first==v[j].sec && d[1][j]>max1){max1=d[1][j];

p1=j;}

}

d[0][i]=max0+1;

d[1][i]=max1+1;

poz[0][i]=p0;

poz[1][i]=p1;

}

}

void afis()

{int k,p,aux,i,max=0;

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

{if(d[0][i]>max){max=d[0][i];

k=0;p=i;}

if(d[1][i]>max){max=d[1][i];

k=1;p=i;}

}

g<<”Lungimea maxima este “<<max<<endl;

if(k==0){g<<v[p].first<<” “<<v[p].sec<<endl;

aux=v[p].sec;}

else {g<<v[p].sec<<” “<<v[p].first<<endl;

aux=v[p].first;}

p=poz[k][p];

while(p>0)

{if(aux==v[p].first)

{g<<v[p].first<<” “<<v[p].sec<<endl;

k=0;aux=v[p].sec;}

else {g<<v[p].sec<<” “<<v[p].first<<endl;

k=1;aux=v[p].first;}

p=poz[k][p];

}

}

int main()

{cit();

dinamica();

afis();

return 0;}

Top cei mai sexi barbati din lume

Lasă un comentariu

Top 10: Cei mai sexy barbati din lume, in viziunea Glamour Magazine

 

10. Colin Firth

 

9.
Justin Timberlake

 

8. Chace Crawford

 

7. George Clooney

 

6. Zac Efron

 

5. Brad Pitt

 

4. David Beckham

 

3. Hugh Jackman

 

2. Johnny Depp

 

1. Robert Pattinson

  • Cel mai lung subsir comun

    Lasă un comentariu

    Enunt:

    Se dau x si y doua siruri cu m respectiv n numere.

    Exemplu:

    m=8

    v={10,  4 , 20 , 10 , 40,  2,  0,  60}

    n=9

    w:{4,   90,  7 , 10 , 70,  2,   71,  81,  0}

    Cel mai lung subsir comun este : {4,   10,    2,    0}

    Program :

    #include<iostream.h>
    int x[100], y[100], a[50][50], n, m;
    void citire (int v[],i nt n)
    {
    int i;
    cin>>n;
    for(i=1; i<=n; i++)

    cin>>v[i];

    }

    int maxim (int x, int y)
    {
    if(x>y) return x;

    else return y;

    }

    void dinamica()
    {
    int i, j;

    for(i=1; i<=m; i++)
    for(j=1 ;j<=n; j++)
    if(x[i]==y[j]) a[i][j]=a[i-1][j-1]+1;
    else a[i][j]=maxim(a[i-1][j], a[i][j-1]);
    cout<<”Lungimea maxima este: ”<<a[m][n]<<”\n”;
    }

    void afisare (int i, int j)
    {
    int v[150],  k=0;
    while(i>0 && j>0)

    if(x[i]==y[j]){v[++k]=x[i];
    i–;j–;}
    else { if(a[i][j]==a[i-1][j])i–-;
    else j–-;}
    for(i=k; i>=1; i–)cout<<v[i]<<” “;
    }
    int main()
    {
    citire(x, m);
    citire(y, n);
    dinamica();
    afisare(m, n);
    return 0;
    }

    Se cere sa se determine cel mai lung subsir comun celor doua siruri.

    Subsir crescator maximal

    Lasă un comentariu

    1. Enunt:

    Se citeste de la tastatura un vector v cu n numere naturale.Sa se afiseze lungimea celui mai lung subsir de valori alese din v astfel incat subsirul sa fie ordonat crescator.

    2.Exemplu:

    Sirul {2, 4, 3, 5, 3, 6} are cel mai lung subsir crescator de lungime 4:

    {2, 4, 5, 6} sau {2, 3, 5, 6}.

    Vom nota cu d[k] lungimea celui mai lung subşir crescător care începe de la poziţia k şi până la sfârşitul şirului iniţial,iar cu poz[i]=pozitia elementului urmator in subsirul crescator.

    3.Program

    #include<iostream.h>

    #include<fstream.h>

    ifstream f(„subsir.in”);

    int v[90],poz[90],d[90],n;

    void cit()

    {int i;

    f>>n;

    for(i=1;i<=n;i++) f>>v[i];

    f.close();

    }

    void dinamica()

    {int i,j,max,p;

    d[n]=1;

    poz[n]=0;

    for(i=n-1;i>=1;i++)

    {max=p=0;

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

    if(v[i]<v[j] && max<d[j]) {max=d[j];

    p=j;}

    poz[i]=p;

    d[i]=1+max;

    }

    p=1;

    for(i=2;i<=n;i++)

    if(d[i]>d[p]) p=max;

    while(p!=0)

    {cout<<v[p]<<” „;

    p=poz[p];}

    }

    int main()

    {cit();

    dinamica();

    return 0;

    }

     

     


     

     

     

    3 destinatii ideale pentru un Revelion de vis

    Lasă un comentariu

    Anul 2010 se apropie inexorabil de sfarsit, un sfarsit si un nou inceput pe care o intreaga planeta se pregateste sa le sarbatoreasca in zgomotul artificiilor, al cantecelor si al sampaniilor desfacute in miez de noapte. Probabil ca cei mai multi dintre cei care citesc acest articol si-au stabilit deja destinatia si grupul de prieteni alaturi de care vor intampina sfarsitul anului 2010 si zorii lui 2011. Dar pentru cei care inca nu s-au hotarat si care vor sa pretreaca un Revelion memorabil, http://www.descopera.ro recomanda cele mai potrivite destinatii, cele mai tari petreceri si cele mai frumoase locuri in care pot celebra Revelionul…

    <UL>

    <LI>

      Las Vegas
      Exista doua posibilitati prin care poti intampina anul 2011 in Las Vegas, Orasul Pacatelor din mijlocul desertului. Fie te poti afla pe strazi, in mijlocul a zeci sau poate chiar cateva sute de mii de oameni, asteptand fabulosul foc de artificii care a devenit deja o traditie in Capitala Jocurilor de Noroc, fie te poti afla in unul dintre sutele de cluburi special pregatite pentru aceasta petrecere uriasa. Practic, organizatorii ii avertizeaza pe potentialii vizitatori ai Las Vegasului de existenta unui numar atat de mare de localuri deschise in noaptea de Anul Nou incat nimeni nu ar putea sa le viziteze pe toate, nici macar intr-o luna, cu atat mai putin intr-o singura seara, fie ea si seara de Revelion.

      Aproape in fiecare an, libertatea de a consuma bauturi alcoolice pe strazi a transformat petrecerea de Anul Nou intr-una de-a dreptul nebuneasca – nu degeaba i se spune Orasul Pacatelor, iar daca esti adeptul distractiilor fara restrictii, atunci Las Vegas este destinatia ta ideala pentru un Revelion de vis.</LI>

      <LI> Champ-Elysees – Paris
      Daca hedonismul Las Vegasului nu este tocmai pe gustul tau, si daca preferi o destinatie romantica in care sa te bucuri de Anul Nou alaturi de persoana iubita, atunci Parisul este cel mai bun loc in care te poti afla in noaptea dintre ani. Vinul fiert (vin chaud), cidrul si sampania sunt printre cele mai apreciate bauturi la acest eveniment special pentru parizieni, dar nu trebuie sa te ingrijorezi… un numar urias de restaurane, cluburi sau chiar tarabe improvizate sunt gata sa te serveasca cu bauturi non-alcoolice, cu papillotes – mici bucati de ciocolata care, atunci cand sunt scose din ambalaj, pocnesc asemenea artificiilor – si cu deja celebrele croissante pariziene.

      </LI><LI>

      Copacabana – Rio de Janeiro
      Un Revelion brazilian (Reveillon – dupa cum il numesc localnicii) este, de fiecare data, un eveniment de-a dreptul memorabil pe care nu ar trebui sa il ratezi. Femei frumoase, artificii, samba, costume exotice, cocktailuri si o plaja care te asteapta sa sarbatoresti in stil de carnaval trecerea dintre ani… ingredientele care iti pot transforma vacanta de sarbatori intr-una perfecta. Nu uita sa te imbraci in alb, asa o cere traditia, si sa te pregatesti sa dansezi, alaturi de cei aproape doua milioane de oameni, o noapte si zi neintrerupt.

      Este deja un fapt ultracunoscut ca brazilienii sunt unii dintre cei mai buni dansatori ai lumii si unii dintre cei mai buni organizatori de petreceri. Fii sigur ca nimic nu iti va lipsi si ca autoritatile tin cu tot dinandinsul ca oamenii sa se intoarca la fel de entuziasti si in anul urmator. La urma urmei, ce poate fi mai frumos decat un revelion pe una dintre cele mai frumoase plaje ale lumii?</LI>

      </UL>

    Interdictii stupide! Siguranta in avion, „un placebo”?

    Lasă un comentariu

    Un studiu al cercetatorilor americani a scos la iveala faptul ca anumite restrictii impuse pasagerilor aflati la bordul avioanelor au legatura mai mult cu mecanismele de “imbarbatare” psihologica decat cu siguranta, efectul lor fiind prin urmare doar unul de tip “placebo”.

    Statisticile arata ca o persoana din doua sufera de frica de a zbura, asadar nu e de mirare ca, odata imbarcati intr-un avion, cei mai multi dintre pasageri simt nevoia sa urmeze cu sfintenie ordinele hostesselor si ale comandantului aeronavei, convinsi ca stand asezati intr-o pozitie anumita sau inchizand celularul pe timpul zborului minimalizeaza riscul unui accident.

    Dar nu toate regulile impuse pasagerilor aflati la bordul unei aeronave au legatura cu normele de siguranta: exista si unele, potrivit unei anchete pe tema regulamentului de bord al zborurilor americane, realizate de publicatia Weekly Standard, in totalitate inutile.

    Una dintre cele mai bizare reguli este considerata de experti interdictia de a tine scaunul inclinat la 15 grade pe parcursul primelor 20 de minute de la decolare sau in aceeasi perioada de timp inaintea aterizarii. Potrivit regulamentului, sa urci beat la bord nu constituie un delict, dar sa tii spatarul inclinat comod, da.

    De asemenea, pe multe zboruri, nu este permis (fie in anumite intervale, fie pe tot parcursul zborului) sa tii deschise echipamente electronice, precum laptopul si telefonul mobil – o interdictie absolut fara rost, dat fiind echipamentul tehnic al celularelor sau computerelor portabile moderne. Iar cel care are o geanta amplasata la picioare in momentele-cheie, adica cele semnalizate prin lumina rosie, risca o amenda de 1.100 dolari (800 euro). Federal Aviation Administration (FAA), organismul american care impune aceste reguli in SUA, de exemplu, a explicat ca, in acest mod, in cazul unui accident, se faciliteaza trecerea printre scaune si ca unul sau doi centimentri de deplasare pot crea probleme.

    Peter Friedman, consultant pe teme de siguranta aeriana, este, insa, de parere ca in multe cazuri este vorba doar despre dispozitii impuse pentru incurajarea si gratificarea clientilor carora le este frica sa zboare si au nevoie de asigurari suplimentare pentru a fi convinsi ca cineva are grija de siguranta lor pe timpul zborului.

    In alta ordine de idei, insotitorii de bord trebuie sa demonstreze ca, in teorie, sunt capabili sa coboare din avion toti pasagerii in 90 de secunde, a explicat expertul, precizand ca regulile impuse au fost scrise tocmai in urma testelor si verificarii celui mai eficient mod de a evacua un avion. Ce-i drept, este incontestabil mai usor sa cobori dintr-un avion 300 de persoane daca niciuna nu este distrasa de gadgeturi si telefoane mobile, iar coridorul este liber.

    Totusi, „gurile-rele” nu se pot abtine sa se intrebe daca in eventualitatea unei stricaciuni la motorul avionului, zece secunde de rapiditate mai fac vreo diferenta? Datele adunate de National Transportation Safety Board din Statele Unite arata ca, in ultimii 5 ani, din 95 de milioane de zboruri, doar 9 au fost cu probleme. Cu toate acestea, in pofida faptului ca exista o probabilitate mai mare de a fi traznit de un fulger decat aceea de a fi victima intr-un accident aviatic, regulamentul cu privire la siguranta la bord ramane inflexibil si, redactat pentru prima oara in 1971, a fost revizuit doar 30 de ani mai tarziu si neatins de-atunci incoace.

    Dar mai exista cu adevarat, in prezent, nevoia de a-ti tine centura legata, s-au intrebat provocator expertii americani? Studiul facut de oamenii de stiinta nu a intrunit consensul expertilor de zbor si a pilotilor; reafirmand absoluta legitimitate si temeinicia regulilor de siguranta, acestia s-au intrebat la randul lor daca are sens sa produci si sa faci publice niste studii (de o „autoritate” in opinia lor „discutabila”), al caror efect nu este decat acela de a-i face pe pasageri si mai „nedisciplinati”.

    In opinia pilotilor, utilitatea anumitor norme este indiscutabila. Cat despre obligatia de a-ti lega sau nu centura si cand, aceasta este lasata la latitudinea comandantului, care in cazuri de turbulenta decide daca trebuie s-o impuna sau nu.

    In Europa, dispozitiile sunt reglementate de EU-OPS din 2008 si sunt diferite de cele americane. Potrivit lui Andrea Boiardi, directorul executiv al IPA (Italian Pilots Association), ceea ce ancheta publicatiei Weekly Standard taxeaza drept reguli inutile sunt in realitate de bun simt. „Desi interdictia de a tine o geanta la picioare poate parea excesiva, nu e niciun dubiu ca o geanta grea si dificil de deplasat in caz de necesitate poate constitui o problema”. Sectorul in care, in opinia lui Boiardi, regulile au fost impuse mai mult pentru a-i face pe pasageri sa se simta in siguranta este cel al securitatii impotriva unor eventuale atentate teroriste sau amenintari externe.

    Faptul ca un pasager nu poate lua cu el in avion o sticla de apa sau o penseta mi se pare o exagerare. In acest caz, regulile sunt dictate de o excesiva ingrijorare si de nevoia pasagerilor de a se simti super-protejati”.

    Erupţia vulcanului Merapi a făcut 240 de victime până în prezent

    Lasă un comentariu

    „Bilanţul erupţiei Merapi s-a ridicat la 240 de morţi. Aproximativ 390.000 de persoane au fost nevoite să îşi părăsească locuinţa” pentru a se instala în tabere improvizate, a declarat un oficial sub acoperirea anonimatului.

    Precedentul bilanţ comunicat vineri era de 204 morţi şi 380.000 de persoane evacuate.

    Autorităţile le-au cerut locuitorilor să nu se întoarcă în satele lor, vulcanul fiindcă încă activ şi imprevizibil.

    „Nu putem prevedea viitoarele erupţii, locuitorii trebuie să rămână, prin urmare, în tabere până la noi evaluări”, a declarat Subandrio, un vulcanolog oficial.

    „Activitatea Merapi este în continuare puternică şi alerta este încă în vigoare”, a adăugat el.

    Echipele de salvare au anunţat sâmbătă că au descoperit noi cadavre în jurul vulcanului situat în apropiere de oraşul Yogyakarta, în centrul insulei Java, a adăugat oficialul.

    Mai mulţi vulcanologi japonezi sunt în zonă pentru a ajuta la supravegherea vulcanului şi vor instala echipamente de captare care să permită măsurarea presiunii atmosferice.

    „Echipamentele de captare vor fi amplasate la aproximativ 20 de kilometri de crater şi vor permite ameliorarea supravegherii activităţii vulcanice”, a declarat Subandrio.

    Merapi, care are înălţimea de 2.914 metri, este situat în centrul unei regiuni foarte populate, la 26 de kilometri de Yogyakarta.

    Ultima sa erupţie datează din iunie 2006, când au murit două persoane.

    Aceasta a intervenit la câteva zile după cutremurul din 27 mai 2006, cu magnitudinea de 6,3, care a afectat oraşul Yogyakarta şi împrejurimile sale şi a provocat moartea a aproximativ 5.800 de persoane.

    Din cauza riscurilor, Merapi este vulcanul cel mai supravegheat din Indonezia, care are 69 de vulcani activi.

    Aeroportul din Yogyakarta a fost închis până luni, în timp ce numeroase zboruri către această regiune au fost anulate de la începutul erupţiei vulcanice.

    Older Entries