题意:求每个字符串里的每一个字母后面有几个比它小的字母的总和,并对总和按照从小到大排列。
解题思路:直接暴力。
Code:
#include <iostream> 1379
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
using namespace std;
struct Node
{
string str;
int num;
bool operator < (Node a) const
{
return num < a.num;
}
}array[110];
int main()
{
//freopen("input.txt","r",stdin);
int T,n,m;
scanf("%d",&T);
getchar();
getchar();
while(T--)
{
scanf("%d%d",&n,&m);
getchar();
for(int i = 0; i < m; i++)
{
cin>>array[i].str;
array[i].num = 0;
for(int j = 0; j<n-1; j++)
{
for(int k = j+1; k < n; k++)
if(array[i].str[j] > array[i].str[k]) array[i].num++;
}
}
sort(array,array+m);
for(int i = 0; i < m; i++)
cout<<array[i].str<<endl;
}
return 0;
}