fbpx

Problema #2592 – AfisSimetric – Rezolvari PBInfo

de Mihai-Alexandru

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
#include <bits/stdc++.h>
using namespace std;

char m[11][1001];
int v[11];

int main()
{
    int n , cnt=0;
    cin >> n;
    cin.getline(m[0] , 1001);
    for(int i = 1 ; i <= n ; ++i)
        cin.getline(m[i] , 1001);
    for(int i = 1 ; i <= n ; ++i)
    {
        int j = 0;
        while(m[i][j]!='\0')
        {
            if(m[i][j]==' ' && m[i][j+1]!=' ')
                cnt++;
            j++;
        }
        cnt++;
    }
    while(cnt)
    for(int i = 1 ; i <= n; ++i)
    {
        bool ok=false;
        while(m[i][v[i]]!=' ' && m[i][v[i]]!='\0')
            cout << m[i][v[i]], v[i]++ , ok=true;
        if(ok)
            cout << ' ' , cnt--;
        v[i]++;
    }
    return 0;
}
Comentarii

S-ar putea sa iti placa