1536:星スターの【例2】数
制限時間:256ミリ秒のメモリの制限:65536キロバイト
の提出:630番号で:282
説明[タイトル]
ウラル1028:オリジナルタイトルから
空にはいくつかの星があり、星は、各スター座標を持って、異なる位置にありました。左下星場合と(正及び左側の正含む) K Kスター、この星は、言われている K Kレベル。
例えば、星上記図 5 5 3 3つのレベル(1 、2 、4、その左下2,4)は、星の 2 、4、4は ステージ1。図の実施形態が存在する 1 1 0 0、2 2 1レベル1、1 1 2レベル2、1 1 3 3レベルの星。
与えられた星の位置、星の出力レベルの数。
トピックの意味:与えられた N- N-点は、各評価点の定義は、底部の点は、点の数、各レベルについて検定統計量点の数を(直接的以下、放置含む)放置します。
[Enter]を
最初の行の整数 N Nは、星の数を表します。
次の N Nは2つの整数の座標で、星の各ラインの座標を与える X 、Y X、Yを表します。
重複の星はありません。星押し Y Yは、所定の昇順座標Y Yは、に応じて、同一の座標 X、X座標が増加する順に示されています。
[出力]
N N行、各整数、それぞれ、 0 0、1、レベル1、2ステージ2、...、N - 1つのレベルN-1の星の数。
[サンプル入力]
5 1 5 1 7 1 3 3 5
[サンプル出力]
1 2 1 1 0
[注]
データ範囲とヒント:
すべてのデータのための1 ≤ N ≤ 1.5 × 10 4 、0 ≤ X 、Y ≤ 3.2 × 10 4 1≤N≤1.5104,0≤x×、104×y≤3.2。
[ソース]
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 int型 [ 15005 ]、合計[ 32005 ]; 整数 N、M = 32001 。 INT lowbit(INT X){ 戻り X&( - X);} ボイド更新(INT X){ ため(; X <= Mであり、X + = lowbit(x))の和[X] ++ ; } ボイド(へINT X){ int型 RES = 0 。 用(; X> 0 ; X- = lowbit(X))RES + = 和[X]。 [RES] ++ ; } INT メイン(){ // freopenは( "test.in"、 "R"、STDIN)。 scanf関数(" %のD "、&N) 以下のために(int型 i = 1 ; iが++; iが<= N ){ int型X、Y。 scanf関数(" %dの%のD "、およびX&Y)。 (xに + 1)、更新(X + 1 )。 } のために(int型 I = 0 ; iがN <; Iは++)のprintf(" %d個の\ n " 、[I])。 リターン 0 ; }