これは、人気グループZhenti 2008で、昇給である - シミュレーション。
タイトルをよくお読み思考の電車があります:私はライン上の疲れが比較的ソートのwi、ウィスコンシン州で分離することができ、出力が可能。そこでここでは、問題のCMPの手書きの一種の構造に問題があります。2つのマスター文法について(今のところはまだどこ間違って知らない)それは死のサイクルを作成したり......、良くなかったので、WA1、WA2、WA3 ...薄い青、大きな羅バレーをしたいですみんなが私を助けることができます。
1.マスターのstruct&ソート文法
2. 2次元配列を開けないようにしてください
3.問題が最も簡単な解決策のフォームを作るために変換される(例えばX1の== X2が代わり融点として[X1 + 1] =融点[X1])
コード:
書式#include <iostreamの> の#include <アルゴリズム> 使用して 名前空間はstdを、 構造体ノード { int型NUM、合計。 } [ハング1005 ]、[横たわる1005 ]。 BOOL CMP(ノードX、ノードY) { 戻り x.sum> y.sum。 } ブールCMP1(ノードX、ノードY) { 戻り x.num < y.num。 } int型M、N。 int型のD、K、L、X1、X2、Y1、Y2; INT メイン() { CIN >> M >> N >> K >> L >> D。 以下のための(int型私は=1、I '= D; I ++ ) { CIN >> X1 >> Y1 >> X2 >> Y2。 もし(X1の==のX2) { 嘘[分(Y1、Y2)] NUM。 = 分(Y1、Y2)。 嘘[分(Y1、Y2)]和。 ++ 。 } 他 { [分(X1、X2)]を掛けるNUM。 = 分(X1、X2)。 [分(X1、X2)]ハングまとめる。 ++ ; } } ソート(位置 + 1、嘘+ N + 1 、CMP)。 ソート(ハング + 1、ハング+ M + 1 、CMP)。 (嘘をソートします + 1、嘘+ L + 1 、CMP1)。 ソート(ハング + 1 + K +ハング、1 CMP1)。 以下のために(int型私= 1 ; iが= Kを<; I ++)はCOUT << .num << [I]ハング" " 。 coutの << てendl; 用(int型 iは= 1 COUT <<嘘[I] .num <<;私は= Lを<I ++)は" " 。 リターン 0 ; }