蒟蒻有点疑惑,以下是看别人的AC代码
- 为什么只调r的精度就可以保证答案正确呢
- nextafter这样调精度为什么能保证答案正确呢 QAQ蒟蒻坐等听取dalao教诲
#include <bits/stdc++.h>
using namespace std;
using ll = int64_t;
using ld = long double;
int main(){
ld X, Y, R;
cin >> X >> Y >> R;
R = nextafter(R, INFINITY);
ll ans = 0;
const ll from = ceil(X - R), to = floor(X + R);
for(ll x = from; x <= to; x++){
const ld d = sqrt(R * R - (X - x) * (X - x));
const ll from = ceil(Y - d), to = floor(Y + d);
ans += to - from + 1;
}
cout << ans << endl;
}