struct rec
{
int l,r,id;
}q[N];
bool cmp(rec a,rec b)
{
return a.l/cnt==b.l/cnt ? a.r<b.r : a.l/cnt<b.l/cnt;
}
......
int main()
{
int n=read(),m=read(),k=read();
cnt = sqrt(n);
for (int i=1;i<=n;i++)
a[i]=read();
for (int i=1;i<=m;i++)
q[i].l=read(),q[i].r=read(),q[i].id=i;
sort(q+1,q+m+1,cmp);
}
是在sort那里RE的