QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#226796#5152. Circular Caramel CookieFyind#WA 23ms3792kbC++23913b2023-10-26 16:32:342023-10-26 16:32:34

Judging History

你现在查看的是最新测评结果

  • [2023-10-26 16:32:34]
  • 评测
  • 测评结果:WA
  • 用时:23ms
  • 内存:3792kb
  • [2023-10-26 16:32:34]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
#define _ <<" "<<
#define sz(x) ((int) (x).size())
typedef pair<int, int> pii;
typedef long long ll;
const int maxn = 1e5 + 5;
int n, m;
ll s; 

ll calc(ll r2, ll i) {
    ll ret = 0;
    ll L = 0, R = sqrt(r2)*2+5;
    while (L < R) {
        ll M = (L+R)/2+1;
        if (M*M + i*i > r2) R = M-1;
        else L = M;
    }
    return L;
}

bool check(ll r2) {
    if (sqrt(r2) >= maxn*2) return true;
    ll cur = 0;
    for (ll i = 1;i*i <= r2; ++i) {
        cur += calc(r2, i); 
    }
    cur *= 4;
    return cur >= s;
}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cin >> s;
    ll L = 1, R = LLONG_MAX/4;
    while (L < R) {
        ll M = (L+R)/2;
        if (check(M)) R = M;
        else L = M+1;
    }
    cout << fixed << setprecision(6) << sqrt((long double) L ) << '\n';
    return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 23ms
memory: 3596kb

input:

11

output:

2.236068

result:

ok found '2.2360680', expected '2.2360680', error '0.0000000'

Test #2:

score: 0
Accepted
time: 23ms
memory: 3672kb

input:

59

output:

5.000000

result:

ok found '5.0000000', expected '5.0000000', error '0.0000000'

Test #3:

score: 0
Accepted
time: 19ms
memory: 3616kb

input:

1

output:

1.414214

result:

ok found '1.4142140', expected '1.4142136', error '0.0000003'

Test #4:

score: 0
Accepted
time: 23ms
memory: 3612kb

input:

2

output:

1.414214

result:

ok found '1.4142140', expected '1.4142136', error '0.0000003'

Test #5:

score: 0
Accepted
time: 23ms
memory: 3668kb

input:

3

output:

1.414214

result:

ok found '1.4142140', expected '1.4142136', error '0.0000003'

Test #6:

score: -100
Wrong Answer
time: 23ms
memory: 3792kb

input:

4

output:

1.414214

result:

wrong answer 1st numbers differ - expected: '2.2360680', found: '1.4142140', error = '0.3675443'