Răspuns :

#include <iostream>

#include <cstring>

using namespace std;

int n, i, j;

char a[100][100];

int main ()

{

cin >> n;

for (i = 1; i <= n; i ++) cin >> a[i];

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

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

if(strstr(a[i]+strlen(a[i])-2, a[j]+strlen(a[j])-2))

cout << a[i] << " " << a[j] << endl;

return 0;

}

Explicatii:

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

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

se ia un cuvant, iar apoi se parcurg toate cuvintele de dupa el

if(strstr(a[i]+strlen(a[i])-2, a[j]+strlen(a[j])-2))

a[i]+strlen(a[i])-2 = subsirul compus din ultimele 2 caractere ale cuvantului a[i]

a[j]+strlen(a[j])-2 = subsirul compus din ultimele 2 caractere ale cuvantului a[j]

strstr(a[i]+strlen(a[i])-2, a[j]+strlen(a[j])-2) = cauta daca subsirul format din ultimele 2 caractere ale lui a[j] se afla in subsirul format din ultimele doua caractere ale lui a[i]

if(strstr(a[i]+strlen(a[i])-2, a[j]+strlen(a[j])-2)) = daca gaseste subsirul format din ultimele 2 caractere ale lui a[j] in subsirul format din ultimele doua caractere ale lui a[i] executa

Vezi imaginea OiLoveYouO
Vezi imaginea OiLoveYouO