简单题。
有m个长椅,第i个长椅上一开始有A[i]个人,然后又来了m个人,要坐在这些长椅,要求两个数。
MAX(K)和MIN(K)。也就是求所有可能的K值中的最大值和最小值,其中K值这样定义:
这m个人坐在这些长椅之后,所有长椅中人数最大的长椅上的人数。2333有点绕口。
题意就是这样,稍微想想就知道怎么做了。
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <algorithm>
#include <deque>
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
int n;
int m;
int temp[105];
int main() {
scanf("%d", &n);
scanf("%d", &m);
int sum = 0;
for (int i = 1;i <= n;++i) {
scanf("%d", &temp[i]);
sum += (temp[i]);
}
sort(temp + 1, temp + 1 + n);
int maxsum = temp[n] * n;
int sub = maxsum - sum;
if (m >= sub) {
int subsub = m - sub;
int subsubdiv = subsub / n;
int subsubmod = subsub%n;
if (subsubmod == 0) {
printf("%d %d\n", temp[n] + subsubdiv, temp[n] + m);
}
else {
printf("%d %d\n", temp[n] + subsubdiv + 1, temp[n] + m);
}
}
else {
printf("%d %d\n", temp[n], temp[n] + m);
}
//system("pause");
return 0;
}