NC14405. 齐齐录成绩
描述
输入描述
第1行输入两个整数m、n,表示学生的个数和科目的个数。第2-m+1行,每行输入n+2个整数,前n个整数代表第i个学生的各科目成绩,第n+1个整数代表第i个学生的平均分(向下取整),第n+2个整数代表第i个学生的总分。数据保证:0<m≤105,0<n≤10。
输出描述
输出一个整数,代表成绩有问题的学生个数。
示例1
输入:
2 3 99 99 99 99 297 99 99 98 99 296
输出:
1
说明:
第2个学生的平均分应该是98(向下取整),错误学生个数=1。C++11(clang++ 3.9) 解法, 执行用时: 296ms, 内存消耗: 3960K, 提交时间: 2020-03-25 22:03:28
#include<iostream> using namespace std; int main() { int i,m,n,s[12],ans=0,mark=0; cin>>m>>n; while(m--) { int sum=0; for(i=0;i<n+2;i++) { cin>>s[i]; if(i<n) sum+=s[i]; } if((i<n&&(s[i]>100||s[i]<0))||s[i-1]!=sum||s[i-2]!=sum/n) ans++; } cout<<ans; return 0; }
Python3 解法, 执行用时: 556ms, 内存消耗: 4644K, 提交时间: 2022-02-14 10:46:47
m, n = map(int, input().split()) ans = 0 for _ in range(m): inp = list(map(int, input().split())) scores = inp[:n] avg = inp[-2] add = inp[-1] if int(sum(scores)/len(scores)) != avg or sum(scores) != add: ans += 1 print(ans)