Pagini recente » Cod sursa (job #1240940) | Istoria paginii runda/amigoodenoughforojigim | Cod sursa (job #629933) | Cod sursa (job #2473338) | Cod sursa (job #2079591)
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("interesant.in");
ofstream g("interesant.out");
int main()
{
char S[205][5005];
int n, i, j, jj, p, mx;
f >> p >> n;
if (p == 1) {
f >> S[0];
mx = strlen(S[0]);
jj = 0;
for (i = 1; i < n; i++) {
f >> S[i];
if (strlen(S[i]) > mx) {
mx = strlen(S[i]);
jj = i;
}
else if (strlen(S[i]) == mx && strcmp(S[i], S[jj]) < 0) { jj = i; }
}
g << S[jj];
}
else {
int lg[5000], nr=0, poz, m, mx;
bool da[200];
f >> S[0];
lg[0]=strlen(S[0]); mx=lg[0];
for (i = 1; i < n; i++) { f >> S[i];
lg[i]=strlen(S[i]);
if (lg[i]>mx) mx=lg[i];
}
for (i=0; i<n; i++) {
da[i]=1;
if (lg[i]==mx) { nr++; continue; }
for (j=0; j<n && da[i]; j++)
if (lg[i]<lg[j]) {
poz=0;
for (m=0; m<lg[j]; m++) {
if (poz<lg[i] && S[j][m]==S[i][poz])
poz++;
if (poz==lg[i])
da[i]=0;
}
}
if (da[i]) nr++;
}
g<<nr<<'\n';
for (i=0; i<n; i++)
if (da[i]) g<<S[i]<<'\n';
f.close();
g.close();
return 0;
}
}