题意:
n 道题,2 个答题者,已知二者的做题情况,你是受贿裁判,可以给每题指定分值(≥1),求甲乙分数(甲>乙)相差最小时最大分值的最小值。
思路:
统计只有甲或乙做出的题目数。
加一取下整判同余:
#include <bits/stdc++.h> using namespace std; int main() { int n;cin>>n; int a[n],b[n]; for(int &i:a) cin>>i; for(int &i:b) cin>>i; int cA=0,cB=1; for(int i=0;i<n;i++){ if(a[i]&&(!b[i])) ++cA; if(b[i]&&(!a[i])) ++cB; } if(cA) cout<<cB/cA+(cB%cA!=0); else cout<<"-1"; return 0; }
取下整加一:
#include <bits/stdc++.h> using namespace std; int main() { int n;cin>>n; int a[n],b[n]; for(int &i:a) cin>>i; for(int &i:b) cin>>i; int cA=0,cB=0; for(int i=0;i<n;i++){ if(a[i]&&(!b[i])) ++cA; if(b[i]&&(!a[i])) ++cB; } if(cA) cout<<cB/cA+1; else cout<<"-1"; return 0; }