結果
問題 | No.413 +5,000,000pts |
ユーザー | kyuridenamida |
提出日時 | 2016-08-12 23:13:57 |
言語 | C++11 (gcc 11.4.0) |
結果 |
AC
|
実行時間 | 204 ms / 5,000 ms |
コード長 | 676 bytes |
コンパイル時間 | 1,839 ms |
コンパイル使用メモリ | 161,776 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-07 15:46:42 |
合計ジャッジ時間 | 2,098 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ソースコード
#include <bits/stdc++.h> using namespace std; typedef long long ll; ll calc(ll d) { return (ll)((-1 + sqrt(1 + 4*d)) / 2.0); } ll calc2(ll d){ __int128 l = 0; __int128 r = d; while( l != r ){ // cout << (ll)l << " " << (ll)r << endl; __int128 m = (l+r+1) / 2; if( m * m + m <= d ){ l = m; }else{ r = m-1; } } return (ll)l; } int main() { set<ll> v; ll R = 1000000000; int cnt = 0; while(cnt!=100000){ ll r = R; r *= r; ll X = r / 4 - 4; if( calc2(X) != calc(X) ){ //cout << calc(X) << endl; if( X >= 0 and X <= 1e18 ){ cout << X << endl; cnt++; } } R--; } // for( auto i : v ) cout << i << endl; return 0; }