搜狗最远点对加360然后二分
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
vector< double > data(n * 2);
for (int i = 0; i < n; i++) {
scanf("%lf", &data[i * 2]);
data[i * 2 + 1] = data[i * 2] + 360;
}
sort (data.begin(), data.end());
double ans = 0;
for (int i = 0; i < n; i++) {
auto r = upper_bound(data.begin(), data.end(), (data[i] + 180.0));
auto l = r - 1;
ans = max(ans, max (*l - data[i], 360 - *r + data[i]) );
}
printf("%.8f", ans);
return 0;
}
