結果
問題 | No.688 E869120 and Constructing Array 2 |
ユーザー |
![]() |
提出日時 | 2018-05-18 22:53:49 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 1,357 bytes |
コンパイル時間 | 710 ms |
コンパイル使用メモリ | 80,716 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-07 13:32:40 |
合計ジャッジ時間 | 1,361 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 10 |
ソースコード
#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <set>#include <bitset>#include <cmath>#include <string>#define FI first#define SE second#define PF push_front#define PB push_back#define PPF pop_front#define PPB pop_back#define MA make_pair#define ll long long#define PA pair<int,int>#define VE vector<int>#define VP vector<PA>#define FOR(i,a,b) for(int i=a;i<b;i++)#define ROF(i,a,b) for(int i=b-1;i>=a;i--)#define YES(i) cout<<(i?"YES":"NO")<<endl#define Yes(i) cout<<(i?"Yes":"No")<<endlusing namespace std;//const int INF=1e9+7;const int mod=1e9+7;////struct poi{int X;int Y;int Z;bool operator<(const poi&R)const{return X==R.X ? Y==R.Y ? Z<R.Z : Y<R.Y : X<R.X;}};////int main(){int K;cin>>K;if(K==0){cout<<1<<endl;cout<<0<<endl;return 0;}else if(K==1){cout<<2<<endl;cout<<"1 1"<<endl;return 0;}int now=1;int num=2;while(1){int aa=K/now;if(K%now!=0){now+=num;num++;continue;}int cc=1;int bb=0;while(cc<aa){cc*=2;bb++;}if(cc!=aa){now+=num;num++;continue;}if(bb>=0&&bb<=30-num){cout<<bb+num<<endl;FOR(i,0,bb){if(i!=0){cout<<" ";}cout<<0;}FOR(i,0,num){cout<<" "<<1;}cout<<endl;return 0;}now+=num;num++;}return 0;}