WeiZhang edited 1 天,23 小时前

#include<bits/stdc++.h>

using namespace std;

const int M = 19;

string a[] = {"pop", "no", "zip", "zotz", "tzec", "xul", "yoxkin", "mol", "chen", "yax", "zac", "ceh", "mac", "kankin", "muan", "pax", "koyab", "cumhu", "uayet"};


struct node {
    int d , y;
    string m;

    long long vis;
};



int get_id (const string &s) {
    for(int i = 0 ; i < M ; i ++ ) {
        if(a[i] == s) {
            return i;
        }
    }
    return -1;
}

void solve() {
    int n;
    cin >> n;

    vector<node> v(n);

    for(int i = 0 ; i < n ; i ++ ) {
        char dot;
        cin >> v[i].d >> dot >> v[i].m;
        cin >> v[i].y;

        v[i].vis = 1000000LL * v[i].y + 100LL * get_id(v[i].m) + v[i].d;
    }


    sort(v.begin() , v.end() , [](node a , node b) {
        return a.vis < b.vis;
    });

    for(int i = 0 ; i < n ; i ++ ) {
        cout << v[i].d << ". " << v[i].m << " " << v[i].y << "\n";
    }
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int tt;
    cin >> tt;
    for(int i = 1 ; i <= tt ; i ++ ) {
        cout << "Case #" << i << ":\n";
        solve();
    }

    return 0;

}

Comments