2番目と3番目の列の数値は範囲を指定します。オーバーラップ領域を計算し、右側の数値で決定される範囲内のいくつの数を計算するか(最初の列の数値が同じ場合)+1(= 1が得られ、-1 = 1つは失われた)。 Iこれは1 100 200
は1 0 300
は0 100 +2
、100 200 +1
と200 300 +2
しかし2 100 200
作成と重なるので、私は実際オーバーラップする数値領域のゲインとロスの計算
1 0 100 +2
1 100 200 +1
1 200 300 +2
2 100 200 -1
を持っていることを意味しない重なりを持たず、単に2 100 200 -1
を出力
1 0 300 +2
1 100 200 -1
2 100 200 -1
ている場合、例えば サンプル入力
1 0 5000 +1
1 100 400 -1
1 300 500 +2
1 1000 1200 +3
1 1000 1100 -2
1 0 50 -1
期待される結果
1 50 100 +1
1 300 400 +1
1 400 500 +3
1 1000 1100 -1
1 1100 1200 +2
1 1200 5000 +1
これはいいだろう実現する方法のための擬似コードのいくつかの並べ替え
しかし、私のために働くだろう言語はのためにbashのは、perlの、AWKやsedの
は何も書かれていますか? – codeforester
@codeforester私はそれをするために数字を操作する方法を考えることができません – Jacob
なぜ300 - 400 "+1"ですか?私は+2を得ています。 – choroba