Codeforces 392 A Blocked Points(暴力)


タイトルリンク:Codeforces 392 A Blocked Points
nを与えて、それから原点距離がnより小さいのはすべて積分点で、その他はすべて非積分点で、今ブロックはできるだけ積分点を少なくして、1つの積分点が非積分点に接続することができないようにします.
解題構想:暴力o(n)は、象限の境界状況を1つ列挙してさらに4に乗り、1 s走った.現場の時TLEは、floor関数を1つ増やしてタイプ変換したため、完全にこの一挙に多かった.また、1つのピット点がnが0の時であることに注意する.
#include 
#include 
#include 
#include 
#include 

using namespace std;
typedef long long ll;

int main () {
    ll n, ans = 0;

    cin >> n;

    double R = n;
    ll tmp = n, k;

    for (ll i = 1; i <= n; i++) {
        double r = i;
        k = (ll)sqrt(R*R - r*r);
        ans += (tmp == k ? 1 : tmp - k);
        tmp = k;
    }
    if (n == 0) cout << 1 << endl;
    else cout << ans * 4 << endl;
    return 0;
}