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; }