結果

問題 No.332 数列をプレゼントに
ユーザー koturn
提出日時 2015-12-25 23:56:13
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 1,083 bytes
コンパイル時間 604 ms
コンパイル使用メモリ 62,820 KB
実行使用メモリ 13,760 KB
最終ジャッジ日時 2024-09-19 00:06:41
合計ジャッジ時間 4,449 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 5
other WA * 1 TLE * 1 -- * 40
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <cstdlib>
#include <iostream>
#include <vector>

static void
solve(
    long long int acc,
    long long int x,
    std::string answer,
    const std::vector<int> &va,
    std::vector<int>::size_type idx);


int
main(void)
{
  std::cin.tie(0);
  std::ios::sync_with_stdio(false);

  int n;
  long long int x;
  std::cin >> n >> x;

  std::vector<int> va;
  for (int i = 0; i < n; i++) {
    int a;
    std::cin >> a;
    if (a <= x) {
      va.push_back(a);
    }
  }
  solve(0, x, "", va, 0);
  std::cout << "No" << std::endl;

  return EXIT_SUCCESS;
}


static void
solve(
    long long int acc,
    long long int x,
    std::string answer,
    const std::vector<int> &va,
    std::vector<int>::size_type idx)
{
  if (acc == x) {
    std::cout << answer;
    for (std::vector<int>::size_type i = idx, size = va.size(); i < size; i++) {
      std::cout.put('x');
    }
    std::exit(EXIT_SUCCESS);
  } else if (idx == va.size() || acc > x) {
    return;
  } else {
    solve(acc + va[idx], x, answer + "o", va, idx + 1);
    solve(acc, x, answer + "x", va, idx + 1);
  }
}
0