ポータルます。http://ybt.ssoier.cn:8088 / problem_show.php PID = 1311?
#include <iostreamの> する#include <CStringの> に#define N 100010 使用して 名前空間STDを、 INT [N]、N、S [N] = { 0 }。 長い 長い ANS = 0 ; ボイド GB(int型左、int型右) { 場合(左==右)のリターン; int型半ば=(左+右)/ 2 ; ギガバイト(左、中)、ギガバイト(ミッド + 1 、右)。 int型私=左、J =ミッド+ 1、TOT = 0 ; しばらく(I <=ミッド&& jの<=右) なら [I]> [J])S [++ TOT]は[Jを++] =、ANS + =ミッドI +(1 。 他の[++ TOT]は[I ++ = ]。 ながら(iは<= MID)S [++ TOT]は[I ++ = ]。 一方、(J <=右)S [++ TOT] [J ++ = ]。 用(; iは=右<I ++が左I = ) [I] = sの[+ I左1 ]。 返します。 } int型のmain(){ CIN >> N。 以下のために(int型 i = 1 ; iが= <N; iは++)CIN >> [I]。 GB(1 、N) coutの << ANS <<endl; }