奥运奖牌计数

GitHub跳转原题关系图返回列表

逐日累计金银铜牌数,最后输出三类总数和总奖牌数。

OJ: noi_openjudge

题目 ID: ch0105-07

难度:入门

标签:循环模拟python

日期: 2026-07-30 23:01

题意

读入每天的金、银、铜牌数量,输出三类总数与总奖牌数。

思路

维护三个累计变量。每读入一行就分别相加,循环结束后总数为三个累计值之和。

代码

Python代码

python
days = int(input())
gold = silver = bronze = 0

for _ in range(days):
    today_gold, today_silver, today_bronze = map(int, input().split())
    gold += today_gold
    silver += today_silver
    bronze += today_bronze

print(gold, silver, bronze, gold + silver + bronze)

C++代码

cpp
#include <cstdio>

int main(){
    int n;
    int sum = 0;
    int i;
    int a=0,b=0,c=0;
    int t1,t2,t3;
    scanf("%d",&n);
    for (i=1;i<=n;i++){
        scanf("%d%d%d",&t1,&t2,&t3);
        a += t1;
        b += t2;
        c += t3;
    }
    printf("%d %d %d %d\n",a,b,c,a+b+c);
    return 0;
}

复杂度

时间复杂度为 O(n)O(n),额外空间复杂度为 O(1)O(1)

总结

多字段统计时,让每个字段拥有独立累计器,最后再组合派生结果。