#include <stdio.h> #include <string.h> struct Ch { char str[100]; int l; }; int main() { void sort(struct Ch a[],int m); struct Ch a[1000]; int i,n,m; char b[5]={"stop"}; while (scanf ("%d",&n)!=EOF) { m=0; getchar(); for (i=0;i<n;i++) { gets(a[i].str); if (strcmp(b,a[i].str)==0) break; m++; a[i].l=strlen(a[i].str); a[i].str[a[i].l]='\0'; } sort(a,m); for (i=0;i<m;i++) puts(a[i].str); } return 0; } void sort(struct Ch a[],int m) { int i,j; struct Ch t; for (i=0;i<m-1;i++) for (j=0;j<m-1-i;j++) if (a[j].l>a[j+1].l) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } /************************************************************** Problem: 2219 User: admin Language: C Result: Accepted Time:13 ms Memory:1148 kb ****************************************************************/