注意用long long 就好了~ 输出每个点离其他点的最大值和最小值~
AC代码:
#include "iostream"
#include "cstdio"
#include "cstring"
#include "algorithm"
using namespace std;
const int maxn = 1e5 + 5;
typedef long long ll;
ll a[maxn];
int main(int argc, char const *argv[])
{
int n;
scanf("%d", &n);
for(int i = 0; i < n; ++i)
scanf("%I64d", &a[i]);
printf("%I64d %I64d\n", a[1] - a[0], a[n - 1] - a[0]);
for(int i = 1; i < n - 1; ++i)
printf("%I64d %I64d\n", min(a[i] - a[i - 1], a[i + 1] - a[i]), max(a[i] - a[0], a[n - 1] - a[i]));
printf("%I64d %I64d\n", a[n - 1] - a[n - 2], a[n - 1] - a[0]);
return 0;
}