結果

問題 No.437 cwwゲーム
ユーザー togari_takamoto
提出日時 2016-10-28 22:43:58
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 1,223 bytes
コンパイル時間 1,272 ms
コンパイル使用メモリ 161,020 KB
実行使用メモリ 6,820 KB
最終ジャッジ日時 2024-11-24 06:51:34
合計ジャッジ時間 2,364 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 40 WA * 1
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using u32 = uint32_t;
using vi = vector<int>;    using vvi = vector<vi>;
using vb = vector<bool>;   using vvb = vector<vb>;
using vl = vector<ll>;     using vvl = vector<vl>;
using vd = vector<double>; using vvd = vector<vd>;

#define REP(i,n) for(auto i = 0 * (n), i##_len = (n); i < i##_len; ++i)
#define ALL(c) (c).begin(), (c).end()
#define FOR(i,s,n) for(ll i=s, i##_len=(ll)(n); i<i##_len; ++i)
#define TEN(x) ((ll)1e##x)
const ll mod = TEN(9) + 7;

int main() {
	cin.tie(0);
	ios_base::sync_with_stdio(false);
	cout << fixed << setprecision(50);
	string s; cin >> s;
	vl dp(1ll << s.size(), 0);
	ll ans = 0;
	REP(i, 1ll << s.size()) {
		REP(j, s.size()) if (!(i & (1ll << j)) && s[j] != 0) {
			FOR(k, j + 1, s.size()) if(!(i & (1ll << k)) && s[k] != s[j]) {
				FOR(l, k + 1, s.size()) if(!(i & (1ll << l)) && s[l] == s[k]){
					dp[i | (1ll << j) | (1ll << k) | (1ll << l)]
						= max(
							dp[i | (1ll << j) | (1ll << k) | (1ll << l)],
							dp[i] + 100 * (s[j] - '0') + 11 * (s[k] - '0')
					);
					ans = max(ans, dp[i | (1ll << j) | (1ll << k) | (1ll << l)]);
				}
			}
		}
	}

	cout << ans << endl;
	return 0;
}
0