| ||||||||||
| 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 | |||||||||
炫耀一下自己:一次AC是用暴搜来做的。
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string t;
char s[24], a[104];
int cmp(const void* p, const void* q) {
return *(char*)p - *(char*)q;
}
bool isvalid() {
char p, q;
int i, j;
int n = strlen(s);
int m = strlen(a) / 2;
for (j=0; j < m; j++) {
p = a[j*2];
q = a[j*2+1];
for (i=0; i < n; i++) {
if (s[i] == p)
break;
if (s[i] == q)
return false;
}
}
return true;
}
int main()
{
int i, j, n;
while (getline(cin, t)) {
n = t.size();
for (i=j=0; i < n; i++) {
if (t[i]>='a' && t[i]<='z') {
s[j] = t[i];
j++;
}
}
s[j] = '\0';
getline(cin, t);
n = t.size();
for (i=j=0; i < n; i++) {
if (t[i]>='a' && t[i]<='z') {
a[j] = t[i];
j++;
}
}
a[j] = '\0';
n = strlen(s);
qsort(s, n, sizeof(char), cmp);
if (isvalid())
printf("%s\n", s);
while(next_permutation(s, s+n))
if (isvalid())
printf("%s\n", s);
printf("\n");
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator