Language: C++

#include <bits/stdc++.h>
 
using namespace std; typedef long long ll; const int MAXN=1e5+10; struct edge{int nxt,to;}e[MAXN*8];//一定要开8倍空间 struct data{int x,y,id;}dat[MAXN]; int n,d,a,b,x,y,head[MAXN],vis[MAXN],cnt[MAXN],tot=0; ll res=0;
 
void add_edge(int from,int to) {    e[++tot].nxt=head[from];e[tot].to=to;head[from]=tot;    e[++tot].nxt=head[to];e[tot].to=from;head[to]=tot; }
 
bool operator < (data a,data b) {    if(a.x!=b.x) return a.x<b.x;
    return a.y<b.y; }
 
void solve(int k) {    sort(dat+1,dat+n+1);    int cur,lst,l,r;    for(cur=lst=l=r=1;cur<=n;cur++)    {        while((dat[l].x<dat[cur].x+d||dat[l].x==dat[cur].x+d &&dat[l].y<dat[cur].y-k)&&l<=n) l++;        while((dat[r].x<dat[cur].x+d||dat[r].x==dat[cur].x+d &&dat[r].y<=dat[cur].y+k)&&r<=n) r++;        if(l>n) break;        cnt[dat[cur].id]+=r-l;lst=max(lst,l);        if(lst>=r) continue;                add_edge(dat[cur].id,dat[lst].id);        for(;lst<r-1;lst++) add_edge(dat[lst].id,dat[lst+1].id);    } }
 
void dfs(int x) {    vis[x]=true;res+=cnt[x];    for(int i=head[x];i;i=e[i].nxt)        if(!vis[e[i].to]) dfs(e[i].to); }
 
int main() {    scanf("%d%d%d",&n,&a,&b);    for(int i=1;i<=n;i++)        scanf("%d%d",&x,&y),dat[i]={x+y,x-y,i};        d=max(abs(dat[a].x-dat[b].x),abs(dat[a].ydat[b].y));    solve(d);
 
 
 
    for(int i=1;i<=n;i++) swap(dat[i].x,dat[i].y);    solve(d-1);        dfs(a);printf("%lld",res);    cout << endl;    return 0; }
 

Compiler output:
a.cc:5:34: error: extended character   is not valid in an identifier
    5 | void add_edge(int from,int to) {    e[++tot].nxt=head[from];e[tot].to=to;head[from]=tot;    e[++tot].nxt=head[to];e[tot].to=from;head[to]=tot; }
      |                                  ^
a.cc:5:36: error: extended character   is not valid in an identifier
    5 | void add_edge(int from,int to) {    e[++tot].nxt=head[from];e[tot].to=to;head[from]=tot;    e[++tot].nxt=head[to];e[tot].to=from;head[to]=tot; }
      |                                    ^
a.cc:5:90: error: extended character   is not valid in an identifier
    5 | void add_edge(int from,int to) {    e[++tot].nxt=head[from];e[tot].to=to;head[from]=tot;    e[++tot].nxt=head[to];e[tot].to=from;head[to]=tot; }
      |                                                                                          ^
a.cc:5:92: error: extended character   is not valid in an identifier
    5 | void add_edge(int from,int to) {    e[++tot].nxt=head[from];e[tot].to=to;head[from]=tot;    e[++tot].nxt=head[to];e[tot].to=from;head[to]=tot; }
      |                                                                                            ^
a.cc:7:35: error: extended character   is not valid in an identifier
    7 | bool operator < (data a,data b) {    if(a.x!=b.x) return a.x<b.x;
      |                                   ^
a.cc:7:37: error: extended character   is not valid in an identifier
    7 | bool operator < (data a,data b) {    if(a.x!=b.x) return a.x<b.x;
      |                                     ^
a.cc:8:2: error: extended character   is not valid in an identifier
    8 |     return a.y<b.y; }
      |  ^
a.cc:8:4: error: extended character   is not valid in an identifier
    8 |     return a.y<b.y; }
      |    ^
a.cc:10:21: error: extended character   is not valid in an identifier
   10 | void solve(int k) {    sort(dat+1,dat+n+1);    int cur,lst,l,r;    for(cur=lst=l=r=1;cur<=n;cur++)    {        while((dat[l].x<dat[cur].x+d||dat[l].x==dat[cur].x+d &&dat[l].y<dat[cur].y-k)&&l<=n) l++;        while((dat[r].x<dat[cur].x+d||dat[r].x==dat[cur].x+d &&dat[r].y<=dat[cur].y+k)&&r<=n) r++;        if(l>n) break;        cnt[dat[cur].id]+=r-l;lst=max(lst,l);        if(lst>=r) continue;                add_edge(dat[cur].id,dat[lst].id);        for(;lst<r-1;lst++) add_edge(dat[lst].id,dat[lst+1].id);    } }
      |                     ^
a.cc:10:23: error: extended character   is not valid in an identifier
   10 | void solve(int k) {    sort(dat+1,dat+n+1);    int cur,lst,l,r;    for(cur=lst=l=r=1;cur<=n;cur++)    {        while((dat[l].x<dat[cur].x+d||dat[l].x==dat[cur].x+d &&dat[l].y<dat[cur].y-k)&&l<=n) l++;        while((dat[r].x<dat[cur].x+d||dat[r].x==dat[cur].x+d &&dat[r].y<=dat[cur].y+k)&&r<=n) r++;        if(l>n) break;        cnt[dat[cur].id]+=r-l;lst=max(lst,l);        if(lst>=r) continue;                add_edge(dat[cur].id,dat[lst].id);        for(;lst<r-1;lst++) add_edge(dat[lst].id,dat[lst+1].id);    } }
      |                       ^
a.cc:10:45: error: extended character   is not valid in an identifier
   10 | void solve(int k) {    sort(dat+1,dat+n+1);    int cur,lst,l,r;    for(cur=lst=l=r=1;cur<=n;cur++)    {        while((dat[l].x<dat[cur].x+d||dat[l].x==dat[cur].x+d &&dat[l].y<dat[cur].y-k)&&l<=n) l++;        while((dat[r].x<dat[cur].x+d||dat[r].x==dat[cur].x+d &&dat[r].y<=dat[cur].y+k)&&r<=n) r++;        if(l>n) break;        cnt[dat[cur].id]+=r-l;lst=max(lst,l);        if(lst>=r) continue;                add_edge(dat[cur].id,dat[lst].id);        for(;lst<r-1;lst++) add_edge(dat[lst].id,dat[lst+1].id);    } }
      |                                             ^
a.cc:10:47: error: extended character   is not valid in an identifier
   10 | void solve(int k) {    sort(dat+1,dat+n+1);    int cur,lst,l,r;    for(cur=lst=l=r=1;cur<=n;cur++)    {        while((dat[l].x<dat[cur].x+d||dat[l].x==dat[cur].x+d &&dat[l].y<dat[cur].y-k)&&l<=n) l++;        while((dat[r].x<dat[cur].x+d||dat[r].x==dat[cur].x+d &&dat[r].y<=dat[cur].y+k)&&r<=n) r++;        if(l>n) break;        cnt[dat[cur].id]+=r-l;lst=max(lst,l);        if(lst>=r) continue;                add_edge(dat[cur].id,dat[lst].id);        for(;lst<r-1;lst++) add_edge(dat[lst].id,dat[lst+1].id);    } }
      |                                               ^
a.cc:10:65: error: extended character   is not valid in an identifier
   10 | void solve(int k) {    sort(dat+1,dat+n+1);    int cur,lst,l,r;    for(cur=lst=l=r=1;cur<=n;cur++)    {        while((dat[l].x<dat[cur].x+d||dat[l].x==dat[cur].x+d &&dat[l].y<dat[cur].y-k)&&l<=n) l++;        while((dat[r].x<dat[cur].x+d||dat[r].x==dat[cur].x+d &&dat[r].y<=dat[cur].y+k)&&r<=n) r++;        if(l>n) break;        cnt[dat[cur].id]+=r-l;lst=max(lst,l);        if(lst>=r) continue;                add_edge(dat[cur].id,dat[lst].id);        for(;lst<r-1;lst++) add_edge(dat[lst].id,dat[lst+1].id);    } }
      |                                                                 ^
a.cc:10:67: error: extended character   is not valid in an identifier
   10 | void solve(int k) {    sort(dat+1,dat+n+1);    int cur,lst,l,r;    for(cur=lst=l=r=1;cur<=n;cur++)    {        while((dat[l].x<dat[cur].x+d||dat[l].x==dat[cur].x+d &&dat[l].y<dat[cur].y-k)&&l<=n) l++;        while((dat[r].x<dat[cur].x+d||dat[r].x==dat[cur].x+d &&dat[r].y<=dat[cur].y+k)&&r<=n) r++;        if(l>n) break;        cnt[dat[cur].id]+=r-l;lst=max(lst,l);        if(lst>=r) continue;                add_edge(dat[cur].id,dat[lst].id);        for(;lst<r-1;lst++) add_edge(dat[lst].id,dat[lst+1].id);    } }
      |                                                                   ^
a.cc:10:100: error: extended character   is not valid in an identifier
   10 | void solve(int k) {    sort(dat+1,dat+n+1);    int cur,lst,l,r;    for(cur=lst=l=r=1;cur<=n;cur++)    {        while((dat[l].x<dat[cur].x+d||dat[l].x==dat[cur].x+d &&dat[l].y<dat[cur].y-k)&&l<=n) l++;        while((dat[r].x<dat[cur].x+d||dat[r].x==dat[cur].x+d &&dat[r].y<=dat[cur].y+k)&&r<=n) r++;        if(l>n) break;        cnt[dat[cur].id]+=r-l;lst=max(lst,l);        if(lst>=r) continue;                add_edge(dat[cur].id,dat[lst].id);        for(;lst<r-1;lst++) add_edge(dat[lst].id,dat[lst+1].id);    } }
      |                                                                                                    ^
a.cc:10:105: error: extended character   is not valid in an identifier
   10 | void solve(int k) {    sort(dat+1,dat+n+1);    int cur,lst,l,r;    for(cur=lst=l=r=1;cur<=n;cur++)    {        while((dat[l].x<dat[cur].x+d||dat[l].x==dat[cur].x+d &&dat[l].y<dat[cur].y-k)&&l<=n) l++;        while((dat[r].x<dat[cur].x+d||dat[r].x==dat[cur].x+d &&dat[r].y<=dat[cur].y+k)&&r<=n) r++;        if(l>n) break;        cnt[dat[cur].id]+=r-l;lst=max(lst,l);        if(lst>=r) continue;                add_edge(dat[cur].id,dat[lst].id);        for(;lst<r-1;lst++) add_edge(dat[lst].id,dat[lst+1].id);    } }
      |                                                                                                         ^
a.cc:10:107: error: extended character   is not valid in an identifier
   10 | void solve(int k) {    sort(dat+1,dat+n+1);    int cur,lst,l,r;    for(cur=lst=l=r=1;cur<=n;cur++)    {        while((dat[l].x<dat[cur].x+d||dat[l].x==dat[cur].x+d &&dat[l].y<dat[cur].y-k)&&l<=n) l++;        while((dat[r].x<dat[cur].x+d||dat[r].x==dat[cur].x+d &&dat[r].y<=dat[cur].y+k)&&r<=n) r++;        if(l>n) break;        cnt[dat[cur].id]+=r-l;lst=max(lst,l);        if(lst>=r) continue;                add_edge(dat[cur].id,dat[lst].id);        for(;lst<r-1;lst++) add_edge(dat[lst].id,dat[lst+1].id);    } }
      |                                                                                                           ^
a.cc:10:109: error: extended character   is not valid in an identifier
   10 | void solve(int k) {    sort(dat+1,dat+n+1);    int cur,lst,l,r;    for(cur=lst=l=r=1;cur<=n;cur++)    {        while((dat[l].x<dat[cur].x+d||dat[l].x==dat[cur].x+d &&dat[l].y<dat[cur].y-k)&&l<=n) l++;        while((dat[r].x<dat[cur].x+d||dat[r].x==dat[cur].x+d &&dat[r].y<=dat[cur].y+k)&&r<=n) r++;        if(l>n) break;        cnt[dat[cur].id]+=r-l;lst=max(lst,l);        if(lst>=r) continue;                add_edge(dat[cur].id,dat[lst].id);        for(;lst<r-1;lst++) add_edge(dat[lst].id,dat[lst+1].id);    } }
      |                                                                                                             ^
a.cc:10:111: error: extended character   is not valid in an identifier
   10 | void solve(int k) {    sort(dat+1,dat+n+1);    int cur,lst,l,r;    for(cur=lst=l=r=1;cur<=n;cur++)    {        while((dat[l].x<dat[cur].x+d||dat[l].x==dat[cur].x+d &&dat[l].y<dat[cur].y-k)&&l<=n) l++;        while((dat[r].x<dat[cur].x+d||dat[r].x==dat[cur].x+d &&dat[r].y<=dat[cur].y+k)&&r<=n) r++;        if(l>n) break;        cnt[dat[cur].id]+=r-l;lst=max(lst,l);        if(lst>=r) continue;                add_edge(dat[cur].id,dat[lst].id);        for(;lst<r-1;lst++) add_edge(dat[lst].id,dat[lst+1].id);    } }
      |                                                                                                               ^
a.cc:10:202: error: extended character   is not valid in an identifier
   10 | void solve(int k) {    sort(dat+1,dat+n+1);    int cur,lst,l,r;    for(cur=lst=l=r=1;cur<=n;cur++)    {        while((dat[l].x<dat[cur].x+d||dat[l].x==dat[cur].x+d &&dat[l].y<dat[cur].y-k)&&l<=n) l++;        while((dat[r].x<dat[cur].x+d||dat[r].x==dat[cur].x+d &&dat[r].y<=dat[cur].y+k)&&r<=n) r++;        if(l>n) break;        cnt[dat[cur].id]+=r-l;lst=max(lst,l);        if(lst>=r) continue;                add_edge(dat[cur].id,dat[lst].id);