結果

問題 No.648  お や す み 
ユーザー dsytk7
提出日時 2018-02-09 23:08:59
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 852 bytes
コンパイル時間 1,533 ms
コンパイル使用メモリ 159,624 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-09-13 21:02:29
合計ジャッジ時間 3,476 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 84
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int (i)=(0);(i)<(int)(n);++(i))
using ll = long long;
using P = pair<int, int>;
using namespace std;

template<class T> void vin(vector<T>& v, int n) {
    v.resize(n);
    for (int i = 0; i < n; ++i) {
        cin >> v[i];
    }
}

int main() {
    unsigned long long N;
    cin >> N;
    unsigned long long n = (sqrt(8ULL*N+1)-1ULL)/2ULL;
    ll tmp = n;
    unsigned long long t = n-1000ULL;
    if (tmp - 1000 < 0) t = 0;
    for (unsigned long long tmp = t; tmp<=(n+1000ULL); ++tmp) {
        unsigned long long t1 = tmp, t2 = tmp+1;
        if (tmp%2ULL == 0ULL) t1 /= 2ULL;
        else t2 /= 2ULL;
        if (t1*t2 == N) {
            cout << "YES" << endl;
            cout << (ll)tmp << endl;
            return 0;
        }
    }
    cout << "NO" << endl;
    return 0;
}
0