| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
new message for problem 3821code:
#include <stdio.h>
#include <string.h>
char s[155];
int dp[155][155];
int len;
int dfs(int l, int r) {
if (l > r) return 1;
if (l == r) return 0;
if (dp[l][r] != -1) return dp[l][r];
if (s[l] == s[r] && dfs(l + 1, r - 1)) {
return dp[l][r] = 1;
}
for (int k = l; k < r; k++) {
if (dfs(l, k) && dfs(k + 1, r)) {
return dp[l][r] = 1;
}
}
for (int k = l + 1; k <= r; k++) {
if (s[l] == s[k] && dfs(l + 1, k - 1) && dfs(k, r)) {
return dp[l][r] = 1;
}
}
return dp[l][r] = 0;
}
int main() {
while (gets(s)) {
len = strlen(s);
memset(dp, -1, sizeof(dp));
if (dfs(0, len - 1)) {
puts("solvable");
} else {
puts("unsolvable");
}
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator