結果

問題 No.648  お や す み 
ユーザー squid
提出日時 2018-02-09 23:39:03
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 873 bytes
コンパイル時間 1,434 ms
コンパイル使用メモリ 158,936 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-09-13 21:04:00
合計ジャッジ時間 3,282 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 84
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:41:25: warning: ‘m’ may be used uninitialized in this function [-Wmaybe-uninitialized]
   41 |     else if(((m-1)*(m-1)+(m-1))/2==n){
      |             ~~~~~~~~~~~~^~~~~~~

ソースコード

diff #

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

//constant
const long long int inf = 1<<30;
const int N = 1e5+1;
const int M = 1e5+1;

//variable
long long int n;

//function


int main()
{
    cin>>n;
    long long int l,r,m;
    //cout<<n<<endl;
    l=0;
    r=sqrt(n)*2;
    //cout<<n<<endl;
    while(l<r){
        m=(l+r)/2;
        //cout<<m<<endl;
        if((m*m+m)/2==n){
            break;
        }
        else if((m*m+m)/2>n){
            r=m;
        }
        else{
            l=m+1;
        }

    }
    if((m*m+m)/2==n){
        cout<<"YES"<<endl;
        cout<<m<<endl;
    }
    else if(((m-1)*(m-1)+(m-1))/2==n){
        cout<<"YES"<<endl;
        cout<<m-1<<endl;
    }
    else if(((m+1)*(m+1)+(m+1))/2==n){
        cout<<"YES"<<endl;
        cout<<m+1<<endl;
    }
    else{
        cout<<"NO"<<endl;
        //cout<<m<<endl;
    }



    return 0;
}
0