题解
2026-09-15 21:43:32
发布于:广东
9阅读
0回复
0点赞
执行用时:1ms
内存消耗:1.38MB
击败了100.00%的用户
击败了100.00%的用户
#include <unistd.h>
static char inBuf[1 << 15];
static int inLen = 0, inPos = 0;
inline int readChar() {
if (inPos == inLen) {
inLen = read(0, inBuf, sizeof(inBuf));
inPos = 0;
if (inLen <= 0) return -1;
}
return inBuf[inPos++];
}
inline int readInt() {
int c = readChar();
while (c <= ' ') c = readChar();
int x = 0;
while (c > ' ') {
x = x * 10 + (c - '0');
c = readChar();
}
return x;
}
int main() {
int n = readInt();
static int x[100005];
for (int i = 0; i < n; i++) x[i] = readInt();
int M1 = -2100000000, M2 = -2100000000;
for (int i = 0; i < n; i++) {
int t = readInt();
int a = x[i] + t;
int b = -x[i] + t;
if (a > M1) M1 = a;
if (b > M2) M2 = b;
}
// 输出:(M1 - M2) / 2.0,保留一位小数
int val = M1 - M2;
char out[20];
int len = 0;
if (val < 0) { out[len++] = '-'; val = -val; }
int integerPart = val / 2;
int decimalPart = (val % 2) * 5;
// 整数部分转字符串
char tmp[12];
int tlen = 0;
if (integerPart == 0) tmp[tlen++] = '0';
while (integerPart > 0) {
tmp[tlen++] = '0' + integerPart % 10;
integerPart /= 10;
}
for (int i = tlen - 1; i >= 0; i--) out[len++] = tmp[i];
out[len++] = '.';
out[len++] = '0' + decimalPart;
out[len++] = '\n';
write(1, out, len);
return 0;
}
全部评论 3


2026-09-15 来自 广东
0
2026-09-15 来自 广东
0
2026-09-15 来自 广东
0





有帮助,赞一个