Codeforces Round #618 (Div. 2)
QAQ : 我太难了 A. Even But Not Even 题意: 给你一个长度为 n 的数组 a, 你可把其中一个数的值加一,这个操作你可以做无数次,要求最后的数组之和不等于零,数组之积不等于 0 ,输出所需最小的操作数。 思路: 暴力模拟即可,要求数组中不能有 0 ,和不等于 0 。 代码: #include <bits/stdc++.h> using namespace std; int num[105]; int main() { int T; scanf("%d",&T); while(T--) { int n; cin >> n; int sum = 0,ans = 0; for(int i = 0;i<n;++i) { cin >> num[i]; if(num[i]==0) { ans++; sum+=1; } else { sum+=num[i]; } } if(sum!=0) printf("%d\n",ans); else printf("%d\n",ans+1); } return 0; } B. Array Sharpening 题意: 给你一个数组 n,n 保证是个偶数,将这两个数组划分为等大小的两个数组,使这两个数组中位数之差的绝对值最小。输出这个最小值。 思路: 将数组从小到大排序,答案就是位于中间的两个数差的绝对值。 代码: #include