D - 划数
这个题目有一个潜在条件,所有被划掉的数,都会产生一个它们的和对 11 取模的数。
根据这个关系我们可以知道,这些被划掉的数一定会产生另外一个数,而且这个数是所有被划掉的数的和。
那么我们只需要判断 cnt 存在的时候就可以了
另外 2 的时候要特判,因为此时并不会处理数
#include<iostream>
using namespace std;
int n ,cnt;
int main(){
while(cin >> n >> cnt){
if(n == 2){
int ans = 0;
bool f = false;
for(int i = 1 ; i <= n ; i ++){
int x ; scanf("%d",&x);
if(x == cnt && f){f = false; continue;}
ans = x;
}
printf("%d\n",ans);
continue;
}
int ans = 0;
bool f = true;
for(int i = 1 ; i <= n ; i ++){
int x ; scanf("%d",&x);
if(f && x == cnt){f = false ; continue ;}
ans = (ans + x) % 11;
}
printf("%d\n",ans);
}
return 0;
} 
京公网安备 11010502036488号