洛谷 AT2579 题解
作者:互联网
题意:
给定 \(N\) 道题及每道题答对所得的分值,答错不得分,如果最终总得分是 \(10\) 的倍数,则分数为 \(0\),问最多可以获得多少分?
思路:
对于多种情况进行分类讨论:
-
当最后总得分不是 \(10\) 的倍数时,可以直接输出。
-
当每题得分都是 \(10\) 的倍数时,不可能出现总得分不是 \(10\) 的倍数的情况,所以直接输出 \(0\)。
-
有部分题目分值不是 \(10\) 的倍数,可以减去一个最小的、不是 \(10\) 倍数的分值,所得的差就是答案。
code:
千万别输出多余的回车,后果自负。
#include <bits/stdc++.h>
using namespace std;
int n,sum,x=0x3f3f3f3f,flag;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
int t;
cin>>t;
sum+=t;
if(t%10 != 0){
x=min(x,t);
flag=1;
}
}
if(!flag){ //全部分值都是10的倍数
cout<<0;
}
else if(sum%10){ //最后总分值不是10的倍数
cout<<sum;
}
else{ //第三种情况,减去一个最小的不是10的倍数的值
cout<<sum-x;
}
return 0;
}
标签:10,洛谷,int,题解,AT2579,分值,flag,倍数,总得分 来源: https://www.cnblogs.com/liu-black/p/at2579-tijie.html