Cod sursa(job #18294)

Utilizator za_wolfpalianos cristian za_wolf Data 18 februarie 2007 11:17:53
Problema Amlei Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 2, Clasa a 10-a Marime 1.29 kb
#include<stdio.h>
#include<string.h>
long pp,poz,w[101],z[101],n,y[101][101],i,j,k,l,m,q,a,s,nr;
char sol[100],ww[10][10],c,x[101][101],ss[100];
int main()
{
freopen("pali.in","r",stdin);
freopen("pali.out","w",stdout);
scanf("%ld%c",&n,&c);
for (i=1;i<=n;i++)
{
w[i]=-1;
scanf("%c",&c);
while ((c!='\n')&&(c!=EOF))
{
w[i]++;
x[i][w[i]]=c;
x[i][w[i]+1]=NULL;
if ((c=='a')||(c=='e')||(c=='i')||(c=='o')||(c=='u')) nr++;
if (c==' ') {y[i][0]++; y[i][y[i][0]]=nr; nr=0; }
scanf("%c",&c);
}
y[i][0]++; y[i][y[i][0]]=nr; nr=0;
}

a=1;
while (a)
{
nr=1000;
for (i=1;i<=y[1][0];i++)
if (y[1][i]<nr) nr=y[1][i];
q=1000;
for (i=1;i<=n;i++)
{
m=0;
for (j=1;j<=y[i][0];j++)
if (y[i][j]==nr) m++;
z[i]=m;
if (m<q) q=m;
}

if (q==0) a=1; else
{
a=0;
}
}

for (i=1;i<=n;i++)
{
poz=1;
for (j=0;j<=w[i];j++)
if (x[i][j]!=' ') {ss[0]=x[i][j]; ss[1]=NULL;strcat(ww[poz],ss);} else {poz++;}
for (l=1;l<=y[i][0];l++)
if (y[i][l]==q) {pp=l; l=y[i][0];}

strcat(sol,ww[pp]);
sol[strlen(sol)+1]=NULL;
sol[strlen(sol)]=' ';


for (l=1;l<=poz;l++)
for (j=l+1;j<=poz;j++)
if (!strcmp(ww[j],ww[l])) z[i]--;
for (l=1;l<=poz;l++)
ww[l][0]=NULL;

}
s=1;
for (i=1;i<=n;i++)
s=s*z[i];
printf("%ld\n",s);
for (i=0;i<strlen(sol);i++)
printf("%c",sol[i]);
printf("\n");

return 0;
}