https://codeforces.com/problemset/problem/1575/A
题目大致意思就是,n个字符串,进行排序
奇数位升序,偶数位降序,问排序后的位置,
奇数位正常处理,偶数位,将他处理成镜像的字符值,
例如’B’换成’Y’,‘A’换成’Z’,进行常规处理就可以
#include <bits/stdc++.h>
#define int long long
#define _rep(i,a,b) for( int i=(a); i<=(b); ++i)
#define _down(i,a,b) for( int i=(a); i>=(b); --i)
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
const int mx = 1e6 + 9;
int n, m;
struct node {
int id;
string s;
} a[mx];
bool cmp(node a, node b) {
return a.s < b.s;
}
void solve() {
cin >> n >> m;
_rep(i, 1, n) {
cin >> a[i].s;
a[i].id = i;
}
_rep(i, 1, n) {
_rep(j, 0, m - 1) {
if(j & 1) {
a[i].s[j] = 'Z' - (a[i].s[j] - 'A');
}
}
}
sort(a + 1, a + 1 + n, cmp);
_rep(i, 1, n) {
cout << a[i].id << " ";
}
}
void test() {
char c = 'A';
cout << char('Z' - (c - 'A'));
}
signed main() {
//IOS;
solve();
//test();
return 0;
}