提出 #47918248


ソースコード 拡げる

#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;

//template
using ll = long long;
using ull = unsigned long long;
const int inf = INT_MAX/2;
const ll infl = LONG_MAX/2;

#define OVERLOAD(e1, e2, e3, e4, NAME, ...) NAME
#define REP1(i, b) for (ll i = 0, i##_len = ll(b); i < i##_len; i++)
#define REP2(i, a, b) for (ll i = ll(a), i##_len = ll(b); i < i##_len; i++)
#define REP3(i, a, b, c) for (ll i = ll(a), i##_len = ll(b); i < i##_len; i += ll(c))
#define rep(...) OVERLOAD(__VA_ARGS__, REP3, REP2, REP1)(__VA_ARGS__)
#define REPS1(i, b) for (ll i = 0, i##_len = ll(b); i <= i##_len; i++)
#define REPS2(i, a, b) for (ll i = ll(a), i##_len = ll(b); i <= i##_len; i++)
#define REPS3(i, a, b, c) for (ll i = ll(a), i##_len = ll(b); i <= i##_len; i += ll(c))
#define reps(...) OVERLOAD(__VA_ARGS__, REPS3, REPS2, REPS1)(__VA_ARGS__)
#define RREP1(i, a) for (ll i = ll(a); i >= 0; i--)
#define RREP2(i, a, b) for (ll i = ll(a), i##_len = ll(b); i >= i##_len; i--)
#define RREP3(i, a, b, c) for (ll i = ll(a), i##_len = ll(b); i >= i##_len; i -= ll(c))
#define rrep(...) OVERLOAD(__VA_ARGS__, RREP3, RREP2, RREP1)(__VA_ARGS__)

#define vrep(i, vec) for (auto &i: vec)
#define all(x) (x).begin(), (x).end()
#define Yes(bool) if(bool) {println("Yes");} else {println("No");}

const double pi = 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117;
template<class T> double rad(const T theta) { return theta*pi/180; }

ll mpow(ll x, ll n) { ll ret = 1; while (n > 0) { if (n & 1) ret *= x; x *= x; n >>= 1; } return ret; }

void printd() { cout << '\n'; } template<class T, class... Ts> void printd(const T& a, const Ts&... b) { cout << setprecision(20) << a; if (sizeof...(b) != 0) {cout << ' ';}; printd(b...); }
void println() { cout << '\n'; } template<class T, class... Ts> void println(const T& a, const Ts&... b) { cout << a; if (sizeof...(b) != 0) {cout << ' ';}; println(b...); }
void print() {} template<class T, class... Ts> void print(const T& a, const Ts&... b) { cout << a; if (sizeof...(b) != 0) {cout << ' ';}; print(b...); }
template<class T> void printv(const T vec) { int i = 0; int s = vec.size(); vrep(v, vec) { print(v); i++; if (i != s) print(' '); } println(); }
template<class T> void printvv(const T vec) { vrep(v, vec) { printv(v); } }
void in() {} template<class T, class... Ts> void in(T& a, Ts&... b) { cin >> a; in(b...); }



int main() {
    ll D;
    in(D);

    ll a = 0;
    vector<ll> v;
    while(1) {
        if (a*a <= 2000000000000) {
            v.push_back(a*a);
        } else {
            break;
        }
        a++;
    }
    
    ll ans = infl;
    rep(i, v.size()) {
        ll x = v[i];
        if (x == D) {
            ans = 0;
            break;
        } else if (x-D < 0) {
            auto p = lower_bound(all(v), abs(x-D));
            ans = min(ans, abs(x+(*p)-D));
            p--;
            ans = min(ans, abs(x+(*p)-D));
        }
    }
    println(ans);

    return 0;
}

提出情報

提出日時
問題 C - Minimize Abs 2
ユーザ kaede2912
言語 C++ 23 (gcc 12.2)
得点 300
コード長 3099 Byte
結果 AC
実行時間 67 ms
メモリ 19824 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 3
AC × 31
セット名 テストケース
Sample 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt
All 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 02_handmade_01.txt, 02_handmade_02.txt, 02_handmade_03.txt
ケース名 結果 実行時間 メモリ
00_sample_01.txt AC 13 ms 19608 KiB
00_sample_02.txt AC 14 ms 19640 KiB
00_sample_03.txt AC 13 ms 19696 KiB
01_test_01.txt AC 55 ms 19656 KiB
01_test_02.txt AC 31 ms 19692 KiB
01_test_03.txt AC 53 ms 19604 KiB
01_test_04.txt AC 60 ms 19660 KiB
01_test_05.txt AC 49 ms 19684 KiB
01_test_06.txt AC 66 ms 19584 KiB
01_test_07.txt AC 52 ms 19656 KiB
01_test_08.txt AC 51 ms 19652 KiB
01_test_09.txt AC 58 ms 19728 KiB
01_test_10.txt AC 62 ms 19600 KiB
01_test_11.txt AC 66 ms 19684 KiB
01_test_12.txt AC 51 ms 19652 KiB
01_test_13.txt AC 54 ms 19700 KiB
01_test_14.txt AC 58 ms 19576 KiB
01_test_15.txt AC 30 ms 19648 KiB
01_test_16.txt AC 50 ms 19692 KiB
01_test_17.txt AC 44 ms 19688 KiB
01_test_18.txt AC 56 ms 19692 KiB
01_test_19.txt AC 56 ms 19656 KiB
01_test_20.txt AC 39 ms 19640 KiB
01_test_21.txt AC 11 ms 19648 KiB
01_test_22.txt AC 12 ms 19728 KiB
01_test_23.txt AC 13 ms 19640 KiB
01_test_24.txt AC 11 ms 19700 KiB
01_test_25.txt AC 13 ms 19664 KiB
02_handmade_01.txt AC 67 ms 19596 KiB
02_handmade_02.txt AC 66 ms 19824 KiB
02_handmade_03.txt AC 63 ms 19584 KiB