0082 : Flying Jenny
解説
条件に合うようなメリーゴーランドの並べ方を出力する。
メリーゴーランドの並び方は8種類なので、先に並び方を全て配列に格納しておき、
小さいほうから順に調べていけばいい。
ただ、最小値を求めるとき、最初の値が小さいとWAになってしまうので注意(
10000でもWAになった)。
プログラム
C
C++
|
+
|
... |
#include <iostream>
#include <string>
#include <climits>
using namespace std;
string pos[] = {
"12121414",
"12141412",
"14121214",
"14141212",
"21214141",
"21414121",
"41212141",
"41412121",
};
int main() {
int n[8];
while (cin >> n[0] >> n[1] >> n[2] >> n[3] >> n[4] >> n[5] >> n[6] >> n[7]) {
int min = INT_MAX;
string ans;
for (int i = 0; i < 8; i++) {
int sum = 0;
for (int j = 0; j < 8; j++) {
int a = n[j] - (pos[i][j] - '0');
if (a < 0) a = 0;
sum += a;
}
if (min > sum) {
ans = pos[i];
min = sum;
}
}
cout << ans[0];
for (int i = 1; i < 8; i++) {
cout << " " << ans[i];
}
cout << endl;
}
return 0;
}
|
Java
最終更新:2013年01月14日 16:28