3
1つが上がり、もう1つが下がる
前書き この課題では、与えられた数字のシーケンスを2つのサブシーケンスに分割できるかどうかを決定します。1つは増加し、もう1つは減少します。例として、シーケンスを考えます8 3 5 5 4 12 3。次のように、2つのサブシーケンスに分割できます。 3 5 5 12 8 4 3 最初の行のサブシーケンスは増加しており、2番目の行のサブシーケンスは減少しています。さらに、このタスクを効率的に実行する必要があります。 入力 入力は、L0〜99999の範囲の整数の空でないリストです。言語のネイティブ形式で指定されるか、単にスペースで区切られます。 出力 出力はL、増加するサブシーケンスと減少するサブシーケンスに分割できる場合は真の値であり、そうでない場合は偽の値です。サブシーケンスは厳密に増加または減少する必要はなく、いずれかが空でもかまいません。 ルールとボーナス 完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。さらに、このチャレンジではブルートフォーシングは禁止されています。入力の長さの多項式時間でプログラムを実行する必要があります。 2つのサブシーケンスを実際に返す必要はありませんが、返すと-20%のボーナスがあります。静的に型付けされた言語でボーナスを請求しやすくするために、偽のインスタンスに対して空のリストのペアを返すことは許容されます。 テストケース input -> None偽の入力および真実の入力の形式で与えられますinput -> inc dec。ここでは、可能な1つのサブシーケンスのペアのみを示します。もっとあるかもしれません。 [4,9,2,8,3,7,4,6,5] -> None [0,99999,23423,5252,27658,8671,43245,53900,22339] -> None [10,20,30,20,32,40,31,40,50] -> None [49,844,177,974,654,203,65,493,844,767,304,353,415,425,857,207,871,823,768,110,400,710,35,37,88,587,254,680,454,240,316,47,964,953,345,644,582,704,373,36,114,224,45,354,172,671,977,85,127,341,268,506,455,6,677,438,690,309,270,567,11,16,725,38,700,611,194,246,34,677,50,660,135,233,462,777,48,709,799,929,600,297,98,39,750,606,859,46,839,51,601,499,176,610,388,358,790,948,583,39] -> None [0,1,2,3,4] -> [0,1,2,3,4] [] [4,3,2,1,0] -> [] [4,3,2,1,0] …