bzoj1303: [CQOI2009] Median figure
The code is as follows:
1#include <queue>2#include <cstdio>3#include <cstring>4#include <iostream>5#include <algorithm>6 using namespacestd;7typedefLong Longll;8InlinevoidReadint&x) {9x=0;CharChBOOLFlag =false;Ten while(Ch=getchar (),ch<'!');if(ch = ='-') Ch=getchar (), flag =true; One while(x=Ten*x+ch-'0', Ch=getchar (),ch>'!');if(flag) x=-x; A } -InlineintCat_max (Const int&a,Const int&B) {returnA>b?a:b;} -InlineintCat_min (Const int&a,Const int&B) {returnA<b?a:b;} the Const intMAXN =1000010; - #defineF (x) (x = = m 0: (x < m? -1:1)) - intA[MAXN],L[MAXN],R[MAXN]; - intS[MAXN]; + intMain () { - + intn,m;read (n); read (m); A intp =-1; at for(intI=1, x;i<=n;++i) { -Read (x); A[i] =f (x); - if(A[i] = =0) p =i; - } - for(inti=p-1; i>=1;---) s[i] = A[i] + s[i+1],++l[s[i]+n]; - for(inti=p+1; i<=n;++i) S[i] = A[i] + s[i-1],++r[s[i]+n]; in intAns =0; ++l[n];++R[n]; - for(intI=0;i< (n<<1); ++i) ans + = l[i]*r[(n<<1)-i]; toprintf"%d\n", ans); + //GetChar (); GetChar (); - return 0; the}
bzoj1303: [CQOI2009] Median figure