import java.util.Arrays;
//プログラミングのお題スレ Part11
//https://m...content-available-to-author-only...h.net/test/read.cgi/tech/1524570314/452
//452 名前:デフォルトの名無しさん[] 投稿日:2018/05/16(水) 23:40:38.01 ID:7XX9JZjA
//お題:
//以下のように操作を繰り返して単一リストになったらその要素を返す
//
//[1,2,3,4,5,6,7,8,9]
//-> [5,1,13,2,21,3,29,4]
//-> [16,16,41,1,66,38,91]
//-> [8,8,124,69,33,19]
//(中略)
//-> [4,216]
//-> [2]
//
//テスト例:
//[1,2,3,4,5,6,7,8,9] -> 2
//[9,8,7,6,5,4,3,2,1] -> 2496
//[3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6] -> ?
class Q11_452
{
public static void main
(String[] args
) {
solve(1,2,3,4,5,6,7,8,9);
solve(9,8,7,6,5,4,3,2,1);
solve(3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2,3,8,4,6);
}
static void solve(int...is)
{
if (is.length == 0) return;
// 要素が1個になるまで繰り返す
while (is.length > 1)
{
for(int i = 0; i < is.length - 1; i++)
{
if (is[i] % 2 == 0)
{
// 偶数の場合2で割る
is[i] /= 2;
} else
{
// 奇数の場合3で掛けて右の数値を足す
is[i] = is[i] * 3 + is[i + 1];
}
}
// 配列の右端を切り捨てる
is
= Arrays.
copyOf(is, is.
length - 1); }
}
}
// [ 1, 2, 3, 4, 5, 6, 7, 8, 9]
//-> [ 5, 1, 13, 2, 21, 3, 29, 4]
//-> [ 16, 16, 41, 1, 66, 38, 91]
//-> [ 8, 8,124, 69, 33, 19]
//-> [ 4, 4, 62, ??, ??]
//-> [ 2, 2, 31, ??]
//-> [ 1, 1, ??]
//-> [ 4,216]
//-> [ 2]
aW1wb3J0IGphdmEudXRpbC5BcnJheXM7CgovL+ODl+ODreOCsOODqeODn+ODs+OCsOOBruOBiumhjOOCueODrCBQYXJ0MTEKLy9odHRwczovL20uLi5jb250ZW50LWF2YWlsYWJsZS10by1hdXRob3Itb25seS4uLmgubmV0L3Rlc3QvcmVhZC5jZ2kvdGVjaC8xNTI0NTcwMzE0LzQ1MgoKLy80NTIg5ZCN5YmN77ya44OH44OV44Kp44Or44OI44Gu5ZCN54Sh44GX44GV44KTW10g5oqV56i/5pel77yaMjAxOC8wNS8xNijmsLQpIDIzOjQwOjM4LjAxIElEOjdYWDlKWmpBCi8v44GK6aGM77yaCi8v5Lul5LiL44Gu44KI44GG44Gr5pON5L2c44KS57mw44KK6L+U44GX44Gm5Y2Y5LiA44Oq44K544OI44Gr44Gq44Gj44Gf44KJ44Gd44Gu6KaB57Sg44KS6L+U44GZCi8vCi8vWzEsMiwzLDQsNSw2LDcsOCw5XQovLy0+IFs1LDEsMTMsMiwyMSwzLDI5LDRdCi8vLT4gWzE2LDE2LDQxLDEsNjYsMzgsOTFdCi8vLT4gWzgsOCwxMjQsNjksMzMsMTldCi8v77yI5Lit55Wl77yJCi8vLT4gWzQsMjE2XQovLy0+IFsyXQovLwovL+ODhuOCueODiOS+i++8mgovL1sxLDIsMyw0LDUsNiw3LDgsOV0gLT4gMgovL1s5LDgsNyw2LDUsNCwzLDIsMV0gLT4gMjQ5NgovL1szLDEsNCwxLDUsOSwyLDYsNSwzLDUsOCw5LDcsOSwzLDIsMyw4LDQsNl0gLT4gPwpjbGFzcyBRMTFfNDUyCnsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCiAgICB7CiAgICAgICAgc29sdmUoMSwyLDMsNCw1LDYsNyw4LDkpOwogICAgICAgIHNvbHZlKDksOCw3LDYsNSw0LDMsMiwxKTsKICAgICAgICBzb2x2ZSgzLDEsNCwxLDUsOSwyLDYsNSwzLDUsOCw5LDcsOSwzLDIsMyw4LDQsNik7CiAgICB9CgogICAgc3RhdGljIHZvaWQgc29sdmUoaW50Li4uaXMpCiAgICB7CiAgICAgICAgaWYgKGlzLmxlbmd0aCA9PSAwKSByZXR1cm47CiAgICAgICAgU3lzdGVtLm91dC5wcmludChBcnJheXMudG9TdHJpbmcoaXMpICsgIiAtPiAiKTsKCiAgICAgICAgLy8g6KaB57Sg44GMMeWAi+OBq+OBquOCi+OBvuOBp+e5sOOCiui/lOOBmQogICAgICAgIHdoaWxlIChpcy5sZW5ndGggPiAxKQogICAgICAgIHsKICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGlzLmxlbmd0aCAtIDE7IGkrKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKGlzW2ldICUgMiA9PSAwKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIC8vIOWBtuaVsOOBruWgtOWQiDLjgaflibLjgosKICAgICAgICAgICAgICAgICAgICBpc1tpXSAvPSAyOwogICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgLy8g5aWH5pWw44Gu5aC05ZCIM+OBp+aOm+OBkeOBpuWPs+OBruaVsOWApOOCkui2s+OBmQogICAgICAgICAgICAgICAgICAgIGlzW2ldID0gaXNbaV0gKiAzICsgaXNbaSArIDFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyDphY3liJfjga7lj7Pnq6/jgpLliIfjgormjajjgabjgosKICAgICAgICAgICAgaXMgPSBBcnJheXMuY29weU9mKGlzLCBpcy5sZW5ndGggLSAxKTsKICAgICAgICB9CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihpc1swXSk7CiAgICB9Cn0KCgoKLy8gICBbICAxLCAgMiwgIDMsICA0LCAgNSwgIDYsICA3LCAgOCwgIDldCi8vLT4gWyAgNSwgIDEsIDEzLCAgMiwgMjEsICAzLCAyOSwgIDRdCi8vLT4gWyAxNiwgMTYsIDQxLCAgMSwgNjYsIDM4LCA5MV0KLy8tPiBbICA4LCAgOCwxMjQsIDY5LCAzMywgMTldCi8vLT4gWyAgNCwgIDQsIDYyLCA/PywgPz9dCi8vLT4gWyAgMiwgIDIsIDMxLCA/P10KLy8tPiBbICAxLCAgMSwgPz9dCi8vLT4gWyAgNCwyMTZdCi8vLT4gWyAgMl0=