// P1908逆順 #include <ビット/ STDC ++。H> 使用して 名前空間はstdを、 typedefの長い 長いLL。 const int型 MXN = 5E5 + 5 。 int型[MXN]、C [MXN]、B [MXN]、F [MXN]。 int型のn; インラインINT lowbit(INT X){ 戻り X& - X。 } インラインLL GET(INT X){ LL合計 = 0 ; 用(; X; X- = lowbit(X)){ 和 + = C [X]。 } 戻り値の合計。 } インラインボイド motify(int型のx、int型のY){ ため(; X <= Nであり、X + = lowbit(X)){ C [X] + = Y。 } } INT {main()の cinを >> N; 以下のために(int型 i = 1 ; iが++; iが<= N ){ scanf関数(" %のD "、および[I])。 B [i]は = [I]。 } ソート(B + 1、B + N + 1 )。 INT N =一意(B + 1、B + N + 1)-B- 1 。 以下のために(int型 i = 1 ; iが++; iが<= N ){ [I] = LOWER_BOUND(B + 1、B + N + 1、[I]) - B。 } 以下のために(int型 i = 1 ; iが++; iが<= N ){ motify([I]、1 ); F [I] = I- GET ([I])。 } LL ANS = 0 。 以下のために(int型 i = 1 ; iが++; iが<= N ){ 年 + = F [i]は、 } coutの << 年。 リターン 0 ; }