Rezolvare completă PbInfo #2592 AfisSimetric

Cerința

Se dau n șiruri de caractere care conțin cuvinte formate doar din litere mici și mari ale alfabetului englez, separate prin câte un singur spațiu.

Să se afișeze un nou șir format din primul cuvânt al fiecărui șir în ordinea citirii, al doilea cuvânt al fiecărui șir în ordinea citirii, etc. Dacă șirurile nu au același număr de cuvinte, se continuă acest proces, până când fiecare șir ajunge la final, tot în ordinea citirii.

Date de intrare

Se citește de la tastatură pe prima linie numărul n, iar pe următoarele n linii cele n șiruri de caractere.

Date de ieșire

Programul va afișa pe ecran șirul rezultat conform cerinței.

Restricții și precizări

  • 1 ≤ n ≤ 10
  • fiecare șir are maximum 1000 de caractere

Exemplu

Intrare

3
ana are mere
el are
ea are pere prune

Ieșire

ana el ea are are are mere pere prune

Cum e corect?

cout < "As la info"; cout << "As la info"; cout >> "As la info";

Felicitări! Poți mai mult?

Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.

Greșit, dar nu-i bai!

Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.

Rezolvare

Iată rezolvarea de 100 de puncte pentru problema AfisSimetric:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    vector<string> v,w;
    string s,ss;
    int n,p;
    cin>>n;
    cin.get();
    for(int i=1;i<=n;i++)
    {
        getline(cin,s);
        v.push_back(s);
    }
    while(v.size())
    for(int i=0;i<v.size();i++)
    {
        s=v[i];
        p=s.find(' ');
        if(p==-1)
            ss+=s,ss+=' ',s="",v[i]=s;
        if(v[i]=="")
            v.erase(v.begin()+i),i--;
        else
        {
            for(int j=0;j<=p;j++)
            ss+=s[j];
            s.erase(0,p+1);
            v[i]=s;
        }
    }
    cout<<ss;
    return 0;
}

Atenție

Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa Adresa de email.

Rezolvarea problemei #2592 AfisSimetric

Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2592 AfisSimetric de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.

Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!