Part 1.题目大意
输入三个数,w,n,m,表示队伍 w 在第n 分钟第 m 秒得到了一分。
然后分别输出两支队伍比分大于另一支队伍的时间。
Part 2.蒟蒻的思路
读入数据后,将时间转换为秒,再使 sk[ 时间 ][ 得分队伍 ]+1,这样就可以用 sk[x][y] 表示在第 x 秒第 y 只队伍得到的分数。
然后再一秒一秒的遍历,有队伍得分就给这支队伍的得分加上 sk【时间 】【得分队伍 】,加上得分后判断哪只队伍得分更大,给得分大的那只的领先时间 +1。
最后将两支队伍的领先时间转换成分秒表示,并输出。
所以程序整体为 3部分:读入,遍历,输出。
Part3.蒟蒻的代码
#include <bits/stdc++.h> //可爱的万能头
using namespace std;
short sk[3001]; //记录得分时间
int ans[3]; //记录领先时间
int main(){
int n,w,m,s;
int p1=0,p2=0; //分数1,2
char c;//吞冒号
cin>>n;
while(n--){
cin>>w>>m>>c>>s; //读入
sk[s+m*60][w]++; //存得分
}for(int i=0;i<2880;i++){ //时间一秒一秒的遍历
if(sk[i][1]!=0) p1+=sk[i][1]; //改变队伍1比分
if(sk[i][2]!=0) p2+=sk[i][2]; //改变队伍2的比分
if(p1>p2) ans[1]++;
if(p1<p2) ans[2]++; //判断领先
}printf("%02d:%02d\n%02d:%02d",ans[1]/60,ans[1]%60,ans[2]/60,ans[2]%60); //前导零的简便输出法
return 0;
}

被折叠的 条评论
为什么被折叠?



