http://poj.org/problem?id=3468
区间求和操作 ,一个区间加操作。
#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <iomanip>
using namespace std;
#define ll(ind) (ind<<1)
#define rr(ind) (ind<<1|1)
#define Mid(a,b) (a+((b-a)>>1))
typedef __int64 LL;
const int N = 100100;
int a[N];
struct node
{
int left, right;
LL sum, lazy;;
int mid()
{
return Mid(left, right);
}
void fun(LL summ)
{
lazy += summ;
sum += (right - left + 1) * summ;
}
};
struct segtree
{
node tree[N * 4];
void real(int ind)//更新懒惰标记
{
if (tree[ind].lazy)
{
tree[ll(ind)].fun(tree[ind].lazy);
tree[rr(ind)].fun(tree[i