Life of xhu

About

一些吐槽 & HOJ_1305

Feb 03, 2014

  |   #吐槽   |   #HOJ

今天上网看了一下即将面对的招聘情况,形势还是比较乐观的,通过每天在HOJ上刷的水题,编程能力是有一定提高,简单的题基本都是一次AC,但是好像距离工作的要求还是很远,C Primer Plus快看完了,感觉还是没什么帮助,要是没过初试,回学校真要恶补数据结构和算法了。

第一次在家里用这么多时间来编程,现在觉得除了代码家人老婆什么都是虚的,只有这几样东西能真正的让我觉得亲切。

电视也没什么好看的,我妈前几天还总是吐槽我和可儿整天看爱情公寓,还一遍一遍地看,现在她也不吐槽了,因为其他的电视剧,比爱情公寓还烂。

看了几场NBA比赛,感觉真是陌生,球星什么的都认不出来,认出来几个球衣又不认识了,费舍尔蓄起了胡子,乐福被解说吐槽只知道刷数据,记忆里的NBA还停留在老鱼是斯台普斯中心精神领袖,乐福还是个二年级菜鸟的年代,罢了罢了,就纯粹欣赏这些陌生人的表演吧。

现在终于知道我为什么会一直喜欢马刺了,当我在初中的英语课上知道NBA代表哪三个单词的时候,那一年GDP所向披靡。几年后的今天,这几个老家伙还是在球场上拼杀。也许再往后,已经不需要什么语言,这三个老男人的背影,便是一首岁月谱写的诗。

~~~~~~~~~~~~我是萌萌的昏割线~~~~~~~~~~~~~

今天做的这道水题,让我体会到了了解OJ所用的编译器的重要性,一个比较新的语言特性,在clang++里是warning,到了HOJ上,直接是编译错误啊有木有!

这道题题目挺简单的,只要稍微了解ACM的应该都能明白是什么意思,开始输入一个参赛队伍数,然后接下来每行都是队伍名以及四道题的提交次数和所用时间。设个结构体,数据存好后,计算一下就能得出结果了。

话不多说,代码如下:

 #include <iostream>
using namespace std;

typedef struct Team{
    char name[100];
    int detail[4][2], correct, penalty;
} Team;

int main(){
    int n, winner = 0;
    Team t[100];
    cin >> n;
    for(int i = 0; i < n; i++){
        t[i].correct = 0;
        t[i].penalty = 0;  //如果把这两个值在结构体内确定的话,clang++是warning,但在HOJ上无法编译
        cin >> t[i].name >> t[i].detail[0][0] >> t[i].detail[0][1] >> t[i].detail[1][0] >> t[i].detail[1][1] >> t[i].detail[2][0] >> t[i].detail[2][1] >> t[i].detail[3][0] >> t[i].detail[3][1];
        for(int j = 0; j < 4; j++){
            if(t[i].detail[j][1] != 0){
                t[i].correct += 1;
                t[i].penalty = t[i].detail[j][0] > 1 ? t[i].penalty + t[i].detail[j][1] + (t[i].detail[j][0] - 1) * 20 : t[i].detail[j][1] + t[i].penalty;
            }
        }
    }
    for(int i = 0; i < n; i++){
        if(t[i].correct > t[winner].correct)
            winner = i;
        else if(t[i].correct == t[winner].correct){
            if(t[i].penalty < t[winner].penalty)
                winner = i;
        }
    }
    cout << t[winner].name << ' ' << t[winner].correct << ' ' << t[winner].penalty << endl;
}