NC229836. 罚时
描述
ACM国际大学生程序设计竞赛是由国际计算机学会主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。参赛队伍最多由三名参赛队员组成,竞赛中一般命题10-13题,试题描述为英文,比赛时间为5个小时,前4个小时可以看到实时排名,最后一小时封榜,无法看到排名。竞赛可以使用C、C++和Java。重点考察选手的算法和程序设计能力,选手可携带任何非电子类资料,包括书籍和打印出来的程序等。 返回结果Accepted表示答案正确,Wrong Anwser表示答案错误,Presentation Error表示程序没按规定的格式输出答案,Compile Error,表示程序编译错误。
另外,ACM比赛有个罚时的概念,即每题罚时为从比赛开始到AC的时间+错误提交数*20分钟,没有AC的题目不计罚时,已经AC过的题目后续操作不计入罚时。
现在小布丁想考考大家有没有理解什么是罚时,于是将某支队伍在某次ACM竞赛中的过题情况发给了大家,你需要写一个程序来计算出这支队伍的罚时。
输入描述
第一行包含一个正整数T,表示试题的个数
第二行包含T个整数代表每个题的过题时间,如果某个题的过题时间为0,代表此题还没有AC。
第三行包含T个整数代表每个题的提交次数,提交次数少于50。(当然,如果某道题已经AC过了,他们不会再AC第二次)。
输出描述
一行输出一个整数,代表罚时数。
示例1
输入:
11 240 0 0 58 0 0 14 0 127 0 11 4 0 1 2 0 0 1 0 1 0 1
输出:
530
C++(g++ 7.5.0) 解法, 执行用时: 3ms, 内存消耗: 396K, 提交时间: 2022-11-11 02:39:55
#include<iostream> using namespace std; int s[15]; int x[15]; int main(){ int T,sum=0; cin>>T; for(int i=1;i<=T;i++){ cin>>s[i]; sum+=s[i]; } for(int i=1;i<=T;i++){ cin>>x[i]; if(s[i]!=0){ sum+=(x[i]-1)*20; } } cout<<sum<<endl; }
C++ 解法, 执行用时: 3ms, 内存消耗: 412K, 提交时间: 2021-11-20 23:54:36
#include<bits/stdc++.h> using namespace std; int i,t,a[50],sum=0,n; int main() { cin>>t; for(i=1;i<=t;i++) cin>>a[i]; for(i=1;i<=t;i++) { cin>>n; if(a[i]>0) sum+=a[i]+(n-1)*20; } cout<<sum; }
Python3 解法, 执行用时: 149ms, 内存消耗: 7032K, 提交时间: 2021-11-07 12:20:30
a=int(input()) list1=input().split() list2=input().split() k=0 for i1 in range(a): if list1[i1]!='0': k+=int(list1[i1])+(int(list2[i1])-1)*20 print(k)