hdu 4630線分樹+オンライン操作


hdu 4630
いい問題ですよね.区間の最大公約数を絶えず求めます.
|oo?では、最後の‘124;’の位置によってオンライン検索ができます.調べたい区間を右の業界に並べて、‘124;’の前の位置を更新します.線分の木を使います.....
//hdu 4630    
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define maxn 50002
using namespace std;
int num[maxn],pos[maxn],n,m,p[maxn];
vector g[maxn+5];
struct e1
{
    int x,y,id,ans;
}que[maxn];
struct e2
{
    int l,r,ma;
}tree[maxn*6];

bool cmp(e1 a,e1 b)
{
    if(a.y==b.y)
        return a.x