結果
| 問題 |
No.1256 連続整数列
|
| コンテスト | |
| ユーザー |
was_koru
|
| 提出日時 | 2020-10-16 22:51:58 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,546 bytes |
| コンパイル時間 | 994 ms |
| コンパイル使用メモリ | 92,100 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-07-21 01:28:11 |
| 合計ジャッジ時間 | 1,981 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 1 WA * 25 |
ソースコード
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <math.h>
#include <string>
#include <numeric>
#include <queue>
#include <cstdio>
#include <cstring>
#define ll long long
#define rep(i,n) for(ll i=0;i<n;++i)
#define rep1(i,n) for(ll i=1;i<n;++i)
#define mrep(i,n) for(ll i=n;i>=0;--i)
#define all(a) (a).begin(),(a).end()
#define vl vector<ll>
#define vvl vector<vector<ll> >
#define vb vector<bool>
#define vvb vector<vector<bool> >
#define pl pair<ll,ll>
#define inf 1001001001001001000
#define mod 1000000007
//#define mod 998244353
#define pi 3.1415926535
using namespace std;
struct __INIT{
__INIT(){
cin.tie(0);
ios::sync_with_stdio(false);
cout<<fixed<<setprecision(15);
}
}__init;
// index が条件を満たすかどうか
bool isOK(ll a,ll index, ll n) {
return ((n+1)*a)+((n*(n+1))/2) >= a;
}
ll binary_search(ll a,ll key) {
ll ng = -1;
ll ok = 1000000000;
while (abs(ok - ng) > 1) {
ll mid = (ok + ng) / 2;
if (isOK(a,mid, key)) ok = mid;
else ng = mid;
}
return ok;
}
int main(){
ll a;
cin>>a;
ll n = 3;
bool ok = false;
while((n*(n+1))/2 <= a){
if((n*(n+1))/2 == a){
ok = true;
break;
}
ll m = binary_search(a,n);
if((n+1)*m+(n*(n+1))/2 == a){
ok = true;
break;
}
n++;
}
if(ok){
cout<<"YES"<<endl;
}
else{
cout<<"NO"<<endl;
}
}
was_koru