結果

問題 No.873 バイナリ、ヤバいなり!w
コンテスト
ユーザー zelda_master
提出日時 2026-09-18 00:27:48
言語 C++14
(gcc 15.3.0 + boost 1.92.0 + ACL)
コンパイル:
g++-15 -O2 -lm -std=c++14 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
TLE  
実行時間 -
コード長 1,003 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 439 ms
コンパイル使用メモリ 92,408 KB
実行使用メモリ 19,420 KB
最終ジャッジ日時 2026-09-18 00:28:00
合計ジャッジ時間 11,480 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample -- * 3
other TLE * 1 -- * 35
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>

using namespace std;

const int INF = 0x3f3f3f3f;

int n, mi;
vector<int> vec, ans;

void DFS(int rem, int len) {
    if (rem < 0) return;
    if (rem == 0) {
        if (mi > len) {
            ans.clear();
            for (auto i : vec) ans.push_back(i);
            mi = len;
        }
        return;
    }
    for (int i = 1; i <= sqrt(rem); ++i) {
        vec.push_back(i);
        DFS(rem - i * i, len + i);
        vec.pop_back();
    }
}

int main() {
    // freopen("mess.in", "r", stdin);
    // freopen("mess.out", "w", stdout);

    scanf("%d", &n);

    if (n == 1) puts("0");
    else {
        mi = INF;
        DFS(n, 0);
    
        int pre = 1;
        string s = "";
        for (auto i : ans) {
            pre = 1 - pre;
            for (int j = 1; j <= i; ++j) {
                s += pre + '0';
                pre = 1 - pre;
            }
        }
    
        cout << s << endl;
    }

    return 0;
}
0