View Code of Problem 143

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
using namespace std;

typedef struct dna {
	char name[100];
	int num;
} dna;

bool cmp(dna a,dna b) {
	if(a.num>b.num) {
		return false;
	}else if(a.num==b.num) {
		return false;
	} else {
		return true;
	}
}

int main() {

	int n,m;
	while(scanf("%d %d",&n,&m)!=EOF) {
		dna d[101];
		for(int i=0; i<m; i++) {
			d[i].num=0;
			scanf("%s",d[i].name);
			for(int j=0; j<n; j++) {
				for(int z=j+1; z<n; z++) {
					if(d[i].name[j]>d[i].name[z]) {
						d[i].num++;
					}
				}
			}
		}

		sort(d,d+m,cmp);

		for(int i=0; i<m; i++) {
			printf("%s\n",d[i].name);
		}
	}
}

Double click to view unformatted code.


Back to problem 143