結果

問題 No.648  お や す み 
ユーザー betit0919
提出日時 2019-08-18 20:10:14
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 952 bytes
コンパイル時間 963 ms
コンパイル使用メモリ 103,108 KB
実行使用メモリ 6,824 KB
最終ジャッジ日時 2024-10-01 14:14:33
合計ジャッジ時間 2,910 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 57 WA * 27
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
#include <math.h>
#include <string.h>
#include <map>
#include <numeric>
#include <random>
#include <queue>
#include <deque>
#include <tuple>
#include <iomanip>
#include <iterator>
#include <functional>

using namespace std;
typedef long long ll;

const int INF = (1 << 30) - 1;
const ll INFLL= (1LL << 61) - 1;
const int MOD = 1000000007;
#define ALL(a) (a).begin(),(a).end()
#define rALL(a) (a).rbegin(),(a).rend()
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define REP(i,n) FOR(i,0,n)

int main(){
  cin.tie(nullptr);
  ios::sync_with_stdio(false);
  ll N;
  cin>>N;

  int ok=N,ng=-1;
  bool ans=false;
  int mid;
  while(ok-ng>1){
    mid=(ok+ng)/2;
    bool flag=(mid*(mid+1)/2>N);
    if(mid*(mid+1)/2==N){
      ans=true;
      break;
    }
    if(flag){
      ok=mid;
    }else{
      ng=mid;
    }
  }
  if(ans)cout<<"YES"<<endl<<mid<<endl;
  else cout<<"NO"<<endl;
}
0