結果

問題 No.437 cwwゲーム
ユーザー beet
提出日時 2016-10-28 22:56:35
言語 C++11
(gcc 4.8.5)
結果
AC  
実行時間 4 ms
コード長 660 Byte
コンパイル時間 1,004 ms
使用メモリ 1,652 KB
最終ジャッジ日時 2019-10-07 05:40:21

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
00_sample01.txt AC 3 ms
1,652 KB
00_sample02.txt AC 3 ms
1,636 KB
00_sample03.txt AC 4 ms
1,648 KB
01_hand01.txt AC 3 ms
1,648 KB
01_hand02.txt AC 3 ms
1,652 KB
01_hand03.txt AC 3 ms
1,648 KB
01_hand04.txt AC 3 ms
1,652 KB
01_hand05.txt AC 3 ms
1,652 KB
01_hand06.txt AC 3 ms
1,652 KB
01_hand07.txt AC 4 ms
1,648 KB
01_hand08.txt AC 4 ms
1,652 KB
01_hand09.txt AC 3 ms
1,648 KB
01_hand10.txt AC 3 ms
1,652 KB
01_hand11.txt AC 3 ms
1,652 KB
01_hand12.txt AC 3 ms
1,648 KB
01_hand13.txt AC 4 ms
1,652 KB
01_hand14.txt AC 3 ms
1,648 KB
01_hand15.txt AC 3 ms
1,652 KB
99_system_test1.txt AC 3 ms
1,648 KB
challenge01.txt AC 3 ms
1,648 KB
challenge02.txt AC 3 ms
1,644 KB
in01.txt AC 3 ms
1,648 KB
in02.txt AC 4 ms
1,648 KB
in03.txt AC 4 ms
1,648 KB
in04.txt AC 3 ms
1,652 KB
in05.txt AC 4 ms
1,652 KB
in06.txt AC 3 ms
1,648 KB
in07.txt AC 3 ms
1,648 KB
in08.txt AC 3 ms
1,648 KB
in09.txt AC 4 ms
1,644 KB
in10.txt AC 3 ms
1,632 KB
in11.txt AC 3 ms
1,652 KB
in12.txt AC 3 ms
1,632 KB
in13.txt AC 3 ms
1,652 KB
in14.txt AC 3 ms
1,648 KB
in15.txt AC 3 ms
1,652 KB
in16.txt AC 3 ms
1,632 KB
in17.txt AC 3 ms
1,632 KB
in18.txt AC 4 ms
1,652 KB
in19.txt AC 3 ms
1,632 KB
in20.txt AC 4 ms
1,652 KB
system_test1.txt AC 4 ms
1,652 KB
system_test2.txt AC 3 ms
1,652 KB
system_test3.txt AC 3 ms
1,652 KB
テストケース一括ダウンロード

ソースコード

diff #
#include<bits/stdc++.h>
using namespace std;
int dp[1<<15];
string s;
int n;
int rec(int b){
  if(~dp[b]) return dp[b];
  int res=0,i,j,k;
  for(i=0;i<n;i++){
    if(b>>i&1) continue;
    if(s[i]=='0') continue;
    for(j=i+1;j<n;j++){
      if(b>>j&1) continue;
      for(k=j+1;k<n;k++){
	if(b>>k&1) continue;
	if(s[i]!=s[j]&&s[j]==s[k]){
	  //printf("%d %d %d\n",i,j,k);
	  //printf("%c %c %c\n",s[i],s[j],s[k]);
	  res=max(res,
		  rec((b|(1<<i)|(1<<j)|(1<<k)))
		  +(s[i]-'0')*100+(s[j]-'0')*10+(s[k]-'0'));
	}
      }
    }
  }
  return dp[b]=res;
}
int main(){
  cin>>s; 
  memset(dp,-1,sizeof(dp));
  n=s.size();
  cout << rec(0) << endl;
  return 0;
}
0