twitterで見かけたこの問題が、競技プログラミング的(AtCoderの300点問題くらい)だと感じたのでc++で解いてみた。
using namespace std;
int main(int argc, char *argv[])
{
//init
string orc = "ABCDE";
sort(orc.begin(), orc.end());
//calc
while (next_permutation(orc.begin(), orc.end())){
int kando = 0;
for (size_t i = 0; i < orc.length(); i++){
char drug = orc[i];
switch (drug){
case 'A':
kando /= 2;
break;
case 'B':
kando -= 900;
break;
case 'C':
kando += 2000;
break;
case 'D':
kando *= 5;
break;
case 'E':
kando += 500;
break;
}
}
if (kando == 3000){
cout << orc << endl;
}
}
return 0;
}