Pagini recente » Cod sursa (job #1177659) | Cod sursa (job #1750782) | Cod sursa (job #2614631) | Cod sursa (job #2702429) | Cod sursa (job #397047)
Cod sursa(job #397047)
using namespace std;
#include<cstdio>
#include<fstream>
#include<iostream>
#include<algorithm>
#include<cstring>
int a[36005][18],n,rez,osort[36005];
void citire()
{
ifstream fin("restante.in");
fin>>n;
char c[17];
int i;
fin.getline(c,100);
for(int j=1;j<=n;j++)
{
fin.getline(c,20);
for(i=0;c[i];i++)
a[j][i+1]=int(c[i]);
a[j][0]=i;
sort(a[j]+1, a[j]+a[j][0]+1);
}
}
void afis()
{
int i,j;
printf("%d\n",n);
for(i=1;i<=n;i++)
{
for(j=0;j<=a[osort[i]][0];j++)
printf("%d ", a[osort[i]][j]);
printf("\n");
}
printf("\n");
}
int egal(int i1,int i2)
{
if(a[i1][0]!=a[i2][0])
return 0;
else
{
int i;
for(i=1;i<=a[i1][0];i++)
{
if(a[i1][i]!=a[i2][i])
return 0;
}
return 1;
}
}
int cmp(int x, int y)
{
return (a[x][1]<a[y][1]);
}
void sorteaza()
{
for(int i=1;i<=n;i++)
osort[i]=i;
sort(osort+1,osort+n+1,cmp);
//printf("\n");
for(int i=1;i<=n;i++)
printf("%d ", osort[i]);
printf("\n");
}
int main()
{
freopen("restante.out","w",stdout);
citire();
afis();
int i,j;
rez=n;
sorteaza();
afis();
for(i=1;i<=n;i++)
{
if(egal(osort[i],osort[i+1])==1)
if(i==1)
rez-=2;
else
rez--;
}
printf("%d", rez);
return 0;
}