推公式,注意一下上下范围是down<bob<up的关系,因此uo如果为整数时要特殊处理。
#include<iostream> #include<stdio.h> #include<cstdio> #include<stdlib.h> #include<vector> #include<string> #include<cstring> #include<cmath> #include<algorithm> #include<stack> #include<queue> #include <ctype.h> using namespace std; int T; int N; int M; int a[55]; int b[55]; int main() { freopen("input.txt","r",stdin); // freopen("data.txt","r",stdin); // freopen("out1.txt","w",stdout); scanf("%d",&T); for(int ca=0;ca<T;ca++) { scanf("%d %d",&N,&M); double suma=0; double sumb=0; for(int i=1;i<=(N-1);i++) { scanf("%d",&a[i]); suma+=a[i]; } for(int i=1;i<=M;i++) { scanf("%d",&b[i]); sumb+=b[i]; } double up=suma/(N-1.0); double down=sumb/M*1.0; // cout<<down<<" "<<up<<endl; int u=up; if((int)up==up) u=up-1; int d=down+1; printf("%d %d\n",d,u); } return 0; }