http://codility.com/には、次のような問題があります。
あなたの近所には N 個の正方形があり、それらを結ぶ M 本の直通道路があります。正方形には 0 から N − 1 までの番号が付けられています。あなたは正方形 0 に住んでおり、0 秒で到達できます。店舗は、それぞれの広場に 1 つずつ配置されています。4 つのゼロ インデックス配列 A、B、C、および D の形式で近隣のマップが与えられます。配列 A、B、C のそれぞれには M 個の整数が含まれ、D には N 個の整数が含まれます。各 I (0 ≤ I < M) について、正方形 A[I] と B[I] の間の歩行距離は C[I] 秒です (どちらの方向にも)。
同じ正方形のペアを接続する複数の道路、または両端が同じ正方形に入る道路が存在する可能性があります。
一部の道路がトンネルを通過したり、橋を渡ったりする可能性があります (つまり、正方形と道路のグラフは平面である必要はありません)。
すべてのマスに到達できるとは限りません。各 J (0 ≤ J < N) に対して、正方形 J の店は D[J] 秒で閉店します (D[J] = −1 の場合、店は既に閉店しています)。閉店ギリギリに着いても購入可能です。関数を書く:
int solution(int A[], int M, int B[], int M2, int C[], int M3, int D[], int N);
配列 A、B、C、D を指定すると、開いている店舗に到達するのに必要な最小時間 (秒単位) が返されます。不可能な場合は、-1 を返す必要があります。
私の主な問題は、問題を特定することです。私は数学に深いバックグラウンドを持っていません。私はテストを行い、サンプルデータが質問で提供するように機能しますが、送信後、ウェブサイトはこのデータが間違っていると言っていますdata = [[6, 6, 3, 8, 8, 6, 7, 5, 1, 4, 3, 2, 7, 7], [3, 7, 5, 8, 0, 6, 3, 4, 1, 7, 1, 5, 3, 2], [8, 1, 9, 12, 11, 1, 8, 12, 3, 6, 12, 7, 4, 2], [-1, 1000000000, 1000000000, 999999999, 999999999, 999999999, 1000000000, 1000000000, 1000000000]]
-1 を返しますが、11 を返す必要があると表示されます。0 (自宅) から開始して、より近い店舗を見つけようとすると、0 は 8 に接続し、8 はどこにも接続されないため、行き詰まります。グラフを描画し、0 ~ 8 を残りから切り離します。http://en.wikipedia.org/wiki/Bridge_(graph_theory)に関連していると思われますが、ここで私の知識が止まります。
これは問題の適切な識別ですか?
PD: Python コードの問題を理解することにもっと興味があります。