记录编号 33336 评测结果 AAAATTTTTT
题目名称 韩国明星 最终得分 40
用户昵称 Gravatar王者自由 是否通过 未通过
代码语言 C++ 运行时间 12.630 s
提交时间 2011-11-10 12:54:52 内存使用 25.06 MiB
显示代码纯文本
#include <cstdio>
#include <cstdlib>
#include <cstring>
struct star {
    char s[256];
    int d;
} a[100010];
int n, k, t, l;
char c[256];
int find(char c[], int p) {
    int k = strcmp(c, a[p].s);
    if(k == 0)
        return p;
    else if(k < 0)
        return find(c, p - 1);
    else if(k > 0)
        return find(c, p + 1);
    return n;
}
inline int cmp1(const void *a, const void *b) {
    star aa = *(star*)a, bb = *(star*)b;
    return strcmp(aa.s, bb.s);
}
inline int cmp2(const void *a, const void *b) {
    star aa = *(star*)a, bb = *(star*)b;
    return bb.d - aa.d;
}
int main() {
    freopen("star.in","r",stdin);
    freopen("star.out","w",stdout);
    scanf("%d\n", &n);
    for(int i=0; i<n; i++) {
        scanf("%s\n", a[i].s);
        a[i].d = 0;
    }
    qsort(a, n, sizeof(a[0]), cmp1);
    scanf("%d\n", &k);
    for(int i=0; i<k; i++) {
        scanf("%s\n%d\n", c, &t);
        l = find(c, n / 2);
        a[l].d += t;
    }
    qsort(a, n, sizeof(a[0]), cmp2);
    for(int i=0; i<n; i++)
        printf("%s\n%d\n", a[i].s, a[i].d);
    return 0;
}