More actions
imported>Unknown No edit summary |
(Repair batch-0002 pages from live compare) |
||
| Line 13: | Line 13: | ||
while (true) | while (true) | ||
{ | { | ||
int bottle | int bottle[3][3]; // 병 | ||
int bin | int bin[3]; // 통 | ||
int min_move = 0; // 최소 이동수 = 전체 병 수 - 이동하지 않는 병 수 | int min_move = 0; // 최소 이동수 = 전체 병 수 - 이동하지 않는 병 수 | ||
int total_bottle = 0; | int total_bottle = 0; | ||
| Line 23: | Line 23: | ||
for (j = 0; j < 3; j++) | for (j = 0; j < 3; j++) | ||
{ | { | ||
if (!(cin >> bottle | if (!(cin >> bottle[i][j])) | ||
return 0; | return 0; | ||
total_bottle += bottle | total_bottle += bottle[i][j]; | ||
} | } | ||
bin | bin[0] = BROWN; | ||
bin | bin[1] = CLEAR; | ||
bin | bin[2] = GREEN; | ||
not_move_bottle = bottle | not_move_bottle = bottle[0][BROWN] + bottle[1][CLEAR] + bottle[2][GREEN]; | ||
if ((bottle | if ((bottle[0][BROWN] + bottle[1][GREEN] + bottle[2][CLEAR]) > not_move_bottle) | ||
{ | { | ||
bin | bin[0] = BROWN; | ||
bin | bin[1] = GREEN; | ||
bin | bin[2] = CLEAR; | ||
not_move_bottle = bottle | not_move_bottle = bottle[0][BROWN] + bottle[1][GREEN] + bottle[2][CLEAR]; | ||
} | } | ||
if ((bottle | if ((bottle[0][CLEAR] + bottle[1][BROWN] + bottle[2][GREEN]) > not_move_bottle) | ||
{ | { | ||
bin | bin[0] = CLEAR; | ||
bin | bin[1] = BROWN; | ||
bin | bin[2] = GREEN; | ||
not_move_bottle = bottle | not_move_bottle = bottle[0][CLEAR] + bottle[1][BROWN] + bottle[2][GREEN]; | ||
} | } | ||
if ((bottle | if ((bottle[0][CLEAR] + bottle[1][GREEN] + bottle[2][BROWN]) > not_move_bottle) | ||
{ | { | ||
bin | bin[0] = CLEAR; | ||
bin | bin[1] = GREEN; | ||
bin | bin[2] = BROWN; | ||
not_move_bottle = bottle | not_move_bottle = bottle[0][CLEAR] + bottle[1][GREEN] + bottle[2][BROWN]; | ||
} | } | ||
if ((bottle | if ((bottle[0][GREEN] + bottle[1][BROWN] + bottle[2][CLEAR]) > not_move_bottle) | ||
{ | { | ||
bin | bin[0] = GREEN; | ||
bin | bin[1] = BROWN; | ||
bin | bin[2] = CLEAR; | ||
not_move_bottle = bottle | not_move_bottle = bottle[0][GREEN] + bottle[1][BROWN] + bottle[2][CLEAR]; | ||
} | } | ||
if ((bottle | if ((bottle[0][GREEN] + bottle[1][CLEAR] + bottle[2][BROWN]) > not_move_bottle) | ||
{ | { | ||
bin | bin[0] = GREEN; | ||
bin | bin[1] = CLEAR; | ||
bin | bin[2] = BROWN; | ||
not_move_bottle = bottle | not_move_bottle = bottle[0][GREEN] + bottle[1][CLEAR] + bottle[2][BROWN]; | ||
} | } | ||
| Line 73: | Line 73: | ||
for (i = 0; i < 3; i++) | for (i = 0; i < 3; i++) | ||
{ | { | ||
if (bin | if (bin[i] == BROWN) | ||
cout << "B"; | cout << "B"; | ||
else if (bin | else if (bin[i] == CLEAR) | ||
cout << "C"; | cout << "C"; | ||
else | else | ||
| Line 86: | Line 86: | ||
---- | ---- | ||
EcologicalBinPacking | |||
Latest revision as of 00:16, 27 March 2026
소감
소스
#include <iostream>
using namespace std;
#define BROWN 0
#define GREEN 1
#define CLEAR 2
int main()
{
while (true)
{
int bottle[3][3]; // 병
int bin[3]; // 통
int min_move = 0; // 최소 이동수 = 전체 병 수 - 이동하지 않는 병 수
int total_bottle = 0;
int not_move_bottle = 0;
int i, j;
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
{
if (!(cin >> bottle[i][j]))
return 0;
total_bottle += bottle[i][j];
}
bin[0] = BROWN;
bin[1] = CLEAR;
bin[2] = GREEN;
not_move_bottle = bottle[0][BROWN] + bottle[1][CLEAR] + bottle[2][GREEN];
if ((bottle[0][BROWN] + bottle[1][GREEN] + bottle[2][CLEAR]) > not_move_bottle)
{
bin[0] = BROWN;
bin[1] = GREEN;
bin[2] = CLEAR;
not_move_bottle = bottle[0][BROWN] + bottle[1][GREEN] + bottle[2][CLEAR];
}
if ((bottle[0][CLEAR] + bottle[1][BROWN] + bottle[2][GREEN]) > not_move_bottle)
{
bin[0] = CLEAR;
bin[1] = BROWN;
bin[2] = GREEN;
not_move_bottle = bottle[0][CLEAR] + bottle[1][BROWN] + bottle[2][GREEN];
}
if ((bottle[0][CLEAR] + bottle[1][GREEN] + bottle[2][BROWN]) > not_move_bottle)
{
bin[0] = CLEAR;
bin[1] = GREEN;
bin[2] = BROWN;
not_move_bottle = bottle[0][CLEAR] + bottle[1][GREEN] + bottle[2][BROWN];
}
if ((bottle[0][GREEN] + bottle[1][BROWN] + bottle[2][CLEAR]) > not_move_bottle)
{
bin[0] = GREEN;
bin[1] = BROWN;
bin[2] = CLEAR;
not_move_bottle = bottle[0][GREEN] + bottle[1][BROWN] + bottle[2][CLEAR];
}
if ((bottle[0][GREEN] + bottle[1][CLEAR] + bottle[2][BROWN]) > not_move_bottle)
{
bin[0] = GREEN;
bin[1] = CLEAR;
bin[2] = BROWN;
not_move_bottle = bottle[0][GREEN] + bottle[1][CLEAR] + bottle[2][BROWN];
}
min_move = total_bottle - not_move_bottle;
for (i = 0; i < 3; i++)
{
if (bin[i] == BROWN)
cout << "B";
else if (bin[i] == CLEAR)
cout << "C";
else
cout << "G";
}
cout << " " << min_move << endl;
}
}
댓글
EcologicalBinPacking