QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#381697#7436. Optimal Ordered Problem SolverQingyuCompile Error//C++2313.0kb2024-04-07 20:29:202024-04-07 20:29:21

Judging History

你现在查看的是最新测评结果

  • [2024-04-07 20:29:21]
  • 评测
  • [2024-04-07 20:29:20]
  • 提交

answer

#include<bits/stdc++.h>
#define F(i,l,r) for(int i=l;i<r;++i)
#define Fe(i,l,r) for(int i=l;i<=r;++i)
#define Fer(i,l,r) for(int i=l;i>=r;--i)
#if 0
#define pr(...) fprintf(stderr,__VA_ARGS__)
#else
#define pr(...) void(0)
#endif

typedef long long i64;
const int maxn=1e6,maxm=1e6,N=maxn+10;

namespace IO{
const int BUF_SZ=1<<16;
char ib[BUF_SZ+1],*ip=ib+BUF_SZ;
void ipre(int n){
\u0009int c=ib+BUF_SZ-ip;
\u0009if(c<n){
\u0009\u0009memcpy(ib,ip,c);
\u0009\u0009ip=ib;
\u0009\u0009fread(ib+c,1,BUF_SZ-c,stdin)[ib+c]=0;
\u0009}
}
template<class T>
T read(T L,T R){
\u0009ipre(100);
\u0009T x=0,f=1;
\u0009while(*ip<'0'||*ip>'9')if(*ip++=='-')f=-f;
\u0009while(*ip>='0'&&*ip<='9')x=x*10+*ip++-'0';
\u0009x*=f;
\u0009if(\u0021(L<=x&&x<=R)){
\u0009\u0009std::cerr<<x<<" not in ["<<L<<","<<R<<"]\n";
\u0009\u0009exit(1);
\u0009}
\u0009return x;
}
char ob[BUF_SZ+1],*op=ob;
void opre(int n){
\u0009int c=ob+BUF_SZ-op;
\u0009if(c<n){
\u0009\u0009fwrite(ob,1,BUF_SZ-c,stdout);
\u0009\u0009op=ob;
\u0009}
}
template<class T>
void write(T x){
\u0009opre(100);
\u0009char ss[100],*sp=ss;
\u0009if(x<T(0))x=-x,*op++='-';
\u0009do *sp++=x%10+'0';while(x/=10);
\u0009while(sp\u0021=ss)*op++=*--sp;
}
template<class T>
void write(T x,char c){
\u0009write(x);
\u0009*op++=c;
}
struct __{
\u0009__(){}
\u0009~__(){
\u0009\u0009fwrite(ob,1,op-ob,stdout);
\u0009}
}_;
};
using IO::read;
using IO::write;
const int MEM=1<<26;
char pool[MEM],*pool_p=pool;

template<class T>
void alloc(T *&p,int sz,bool init=1){
\u0009//p=new T[sz]();
\u0009//return;
\u0009p=reinterpret_cast<T*>(pool_p);
\u0009pool_p+=(sz*sizeof(T)+7)&~7;
\u0009assert(pool_p<pool+MEM);
\u0009if(init)F(i,0,sz)new(p+i)T();
}

template<class T>
struct Undo{
\u0009T &x;
\u0009T x0;
\u0009Undo(T &x):x(x),x0(x){}
\u0009~Undo(){x=x0;}
};

#define alloc_scope Undo<char*> _##__LINE__(pool_p)
struct Void{
\u0009char _[0];
\u0009template<class T>
\u0009friend void operator*=(T &,Void){}
\u0009friend Void operator+(Void,Void){return Void();}
};

template<class D=Void,class M=Void>
struct MSegTree{
\u0009struct Node{
\u0009\u0009D d;
\u0009\u0009M m;
\u0009\u0009void app(const M &t){
\u0009\u0009\u0009d*=t;
\u0009\u0009\u0009m*=t;
\u0009\u0009}
\u0009\u0009void up(const Node &a,const Node &b){
\u0009\u0009\u0009d=a.d+b.d;
\u0009\u0009\u0009d*=m;
\u0009\u0009}
\u0009}*tr;
\u0009int mx;
\u0009int n;
\u0009void in(int x){assert(1<=x&&x<=n);}
\u0009void in(int l,int r){assert(1<=l&&l<=r&&r<=n);}
\u0009void alloc(int n){
\u0009\u0009for(mx=1;mx<n+2;mx<<=1);
\u0009\u0009::alloc(tr,mx+n+3);
\u0009\u0009this->n=n;
\u0009}
\u0009void init(int n,D d0){
\u0009\u0009alloc(n);
\u0009\u0009Fe(i,1,n)tr[mx+i].d=d0;
\u0009\u0009range_update(1,n);
\u0009}
\u0009template<class T>
\u0009void init(int n,T *d0){
\u0009\u0009alloc(n);
\u0009\u0009Fe(i,1,n)tr[mx+i].d=d0[i];
\u0009\u0009range_update(1,n);
\u0009}
\u0009Node &at(int x){
\u0009\u0009in(x);
\u0009\u0009return tr[mx+x];
\u0009}
\u0009D &operator[](int x){
\u0009\u0009in(x);
\u0009\u0009return tr[mx+x].d;
\u0009}
\u0009void range_update(int l,int r){
\u0009\u0009in(l),in(r);
\u0009\u0009l+=mx,r+=mx;
\u0009\u0009for(l>>=1,r>>=1;l<r;l>>=1,r>>=1){
\u0009\u0009\u0009Fe(x,l,r)up(x);
\u0009\u0009}
\u0009\u0009for(;l;l>>=1)up(l);
\u0009}
\u0009void up(int x){
\u0009\u0009tr[x].up(tr[x*2],tr[x*2+1]);
\u0009}
\u0009void add(int x,const D &y){//M=Void
\u0009\u0009in(x);
\u0009\u0009for(x+=mx;x;x>>=1)tr[x].d=tr[x].d+y;;
\u0009}
\u0009void update(const M &t){
\u0009\u0009tr[1].app(t);
\u0009}
\u0009template<class T>
\u0009void update(int x,T y){
\u0009\u0009in(x);
\u0009\u0009for(tr[x+=mx].d=y;x>1;up(x>>=1));
\u0009}
\u0009void update(int l,int r,const M &t){
\u0009\u0009in(l),in(r);
\u0009\u0009for(l+=mx-1,r+=mx+1;l^r^1;up(l>>=1),up(r>>=1)){
\u0009\u0009\u0009if(~l&1)tr[l+1].app(t);
\u0009\u0009\u0009if(r&1)tr[r-1].app(t);
\u0009\u0009}
\u0009\u0009for(;l>1;up(l>>=1));
\u0009}
\u0009void update_prefix(int x,const M &t){
\u0009\u0009in(x);
\u0009\u0009for(x+=mx+1;x>1;up(x>>=1)){
\u0009\u0009\u0009if(x&1)tr[x-1].app(t);
\u0009\u0009}
\u0009}
\u0009void update_suffix(int x,const M &t){
\u0009\u0009in(x);
\u0009\u0009for(x+=mx-1;x>1;up(x>>=1)){
\u0009\u0009\u0009if(~x&1)tr[x+1].app(t);
\u0009\u0009}
\u0009}
\u0009D query(){
\u0009\u0009return tr[1].d;
\u0009}
\u0009D query(int l,int r){
\u0009\u0009in(l),in(r);
\u0009\u0009assert(l<=r);
\u0009\u0009D a1,a2;
\u0009\u0009for(l+=mx-1,r+=mx+1;l^r^1;a1*=tr[l>>=1].m,a2*=tr[r>>=1].m){
\u0009\u0009\u0009if(~l&1)a1=a1+tr[l+1].d;
\u0009\u0009\u0009if(r&1)a2=tr[r-1].d+a2;
\u0009\u0009}
\u0009\u0009a1=a1+a2;
\u0009\u0009for(;l>1;a1*=tr[l>>=1].m);
\u0009\u0009return a1;
\u0009}
\u0009D query_prefix(int r){
\u0009\u0009in(r);
\u0009\u0009D a1;
\u0009\u0009for(r+=mx+1;r>1;r>>=1,a1*=tr[r].m){
\u0009\u0009\u0009if(r&1)a1=tr[r-1].d+a1;
\u0009\u0009}
\u0009\u0009return a1;
\u0009}
\u0009D query_suffix(int l){
\u0009\u0009in(l);
\u0009\u0009D a1;
\u0009\u0009for(l+=mx-1;l>1;l>>=1,a1*=tr[l].m){
\u0009\u0009\u0009if(~l&1)a1=a1+tr[l+1].d;
\u0009\u0009}
\u0009\u0009return a1;
\u0009}
\u0009void dn(int x){
\u0009\u0009tr[x*2].app(tr[x].m);
\u0009\u0009tr[x*2+1].app(tr[x].m);
\u0009\u0009tr[x].m=M();
\u0009}
\u0009void dna(int x){
\u0009\u0009in(x);
\u0009\u0009x+=mx;
\u0009\u0009for(int c=__builtin_ctz(mx);c>0;--c)dn(x>>c);
\u0009}
\u0009void dna(int l,int r){
\u0009\u0009in(l,r);
\u0009\u0009l+=mx,r+=mx;
\u0009\u0009for(int c=__builtin_ctz(mx);c>0;--c){
\u0009\u0009\u0009int L=l>>c,R=r>>c;
\u0009\u0009\u0009Fe(i,L,R)dn(i);
\u0009\u0009}
\u0009}
\u0009void dna(){
\u0009\u0009F(i,1,mx){
\u0009\u0009\u0009tr[i*2].app(tr[i].m);
\u0009\u0009\u0009tr[i*2+1].app(tr[i].m);
\u0009\u0009\u0009tr[i].m=M();
\u0009\u0009}
\u0009}
\u0009template<class T>
\u0009int bsearch_l(int x,T f){//M=Void
\u0009\u0009in(x);
\u0009\u0009for(x+=mx+1;;x>>=1){
\u0009\u0009\u0009if(x&1){
\u0009\u0009\u0009\u0009if(f(tr[x-1].d))break;
\u0009\u0009\u0009}
\u0009\u0009}
\u0009\u0009for(--x;x<mx;){
\u0009\u0009\u0009x<<=1;
\u0009\u0009\u0009if(f(tr[x+1].d))++x;
\u0009\u0009}
\u0009\u0009x-=mx;
\u0009\u0009return x+1;
\u0009}
\u0009template<class T>
\u0009int bsearch_r(int x,T f){//M=Void
\u0009\u0009in(x);
\u0009\u0009for(x+=mx-1;;x>>=1){
\u0009\u0009\u0009if(~x&1){
\u0009\u0009\u0009\u0009if(f(tr[x+1].d))break;
\u0009\u0009\u0009}
\u0009\u0009}
\u0009\u0009for(++x;x<mx;){
\u0009\u0009\u0009x<<=1;
\u0009\u0009\u0009if(\u0021f(tr[x].d))++x;
\u0009\u0009}
\u0009\u0009x-=mx;
\u0009\u0009return x-1;
\u0009}
\u0009template<class T>
\u0009int find_lm(T f){
\u0009\u0009int x=1;
\u0009\u0009while(x<mx){
\u0009\u0009\u0009dn(x);
\u0009\u0009\u0009x<<=1;
\u0009\u0009\u0009if(\u0021f(tr[x].d))++x;
\u0009\u0009}
\u0009\u0009x-=mx;
\u0009\u0009return x;
\u0009}
};

template<class T>
struct BIT{
\u0009T *a;
\u0009int n;
\u0009void alloc(int n0){
\u0009\u0009n=n0;
\u0009\u0009::alloc(a,n+1);
\u0009}
\u0009void add(int x,T y){
\u0009\u0009assert(1<=x&&x<=n);
\u0009\u0009int _n=n;
\u0009\u0009for(;x<=_n;x+=x&-x)a[x]+=y;
\u0009}
\u0009T sum(int x){
\u0009\u0009assert(0<=x&&x<=n);
\u0009\u0009T s=0;
\u0009\u0009for(;x;x-=x&-x)s+=a[x];
\u0009\u0009return s;
\u0009}
\u0009void dna(){
\u0009\u0009Fe(i,1,n)a[i]+=a[i-(i&-i)];
\u0009}
\u0009T at(int x){
\u0009\u0009assert(0<=x&&x<=n);
\u0009\u0009return a[x];
\u0009}
\u0009void build(){
\u0009\u0009Fe(i,1,n){
\u0009\u0009\u0009int j=i+(i&-i);
\u0009\u0009\u0009if(j<=n)a[j]+=a[i];
\u0009\u0009}
\u0009}
};
#define CMP(T,x) bool operator<(const T &w)const{return x<w.x;}
#define CMPL(T,x) [](const T &a,const T &b)->bool{return a.x<b.x;}
#define KEYL(T,x) [](const T &a){return a.x;}
template<class T,class F>
void rsort(T *d0,T *d1,int n,int v,F key){
\u0009static int t[1<<20];
\u0009F(i,0,v)t[i]=0;
\u0009F(i,0,n)++t[key(d0[i])];
\u0009int s=0;
\u0009F(i,0,v){
\u0009\u0009int a=t[i];
\u0009\u0009t[i]=s;
\u0009\u0009s+=a;
\u0009}
\u0009F(i,0,n)d1[t[key(d0[i])]++]=d0[i];
}

template<class T,class F>
void rsort2(T *d0,int n,F key){
\u0009alloc_scope;
\u0009T *d1;
\u0009alloc(d1,n,0);
\u0009rsort(d0,d1,n,2048,[key](const T &x){return key(x)&2047;});
\u0009rsort(d1,d0,n,2048,[key](const T &x){return key(x)>>11;});
}
using std::max;
using std::min;

const int inf=1e9;

struct Pos{
\u0009int x,y;
}ps[N],ds[N],ps0[N];
bool in(int x,int l,int r){return l<=x&&x<=r;}

struct XY{
\u0009int x,y;
\u0009XY(int x0=0,int y0=inf):x(x0),y(y0){}
};
XY operator+(XY a,XY b){
\u0009return a.y<b.y?a:b;
}
MSegTree<XY> xyt;
BIT<int> xs0,ys0;
int cur[N];
int f1(int x1,int x2,int y1,int y2){
\u0009if(x1>x2)return 0;
\u0009XY xy=xyt.query(x1,x2);
\u0009if(xy.y>y2)return 0;
\u0009int id=cur[xy.x]++;
\u0009xy.y=(ps0[id].x==ps0[id+1].x?ps0[id+1].y:inf);
\u0009xyt.update(xy.x,xy);
\u0009return id;
}
template<class T>
struct Sum{
\u0009T x;
\u0009Sum(T x0=0):x(x0){}
\u0009operator T(){return x;}
\u0009friend Sum operator+(Sum a,Sum b){return Sum(a.x+b.x);}
};
MSegTree<Sum<int>> xs,ys;
int sumclr(MSegTree<Sum<int>> &ws,int l,int r){
\u0009if(l>r)return 0;
\u0009int s0=ws.query(l,r);
\u0009int s=s0;
\u0009while(s0){
\u0009\u0009int x=ws.bsearch_r(l,[](Sum<int> d){return d.x;})+1;
\u0009\u0009s0-=ws[x];
\u0009\u0009ws.add(x,-ws[x]);
\u0009\u0009l=x+1;
\u0009}
\u0009return s;
}
struct Q{
\u0009int x,y,id;
}qs[N];
int qp=0;
int ans[N];

struct MinI{
\u0009int x;
\u0009MinI(int x0=inf):x(x0){}
};
MinI operator+(MinI a,MinI b){return MinI(min(a.x,b.x));}
MSegTree<MinI> domt;
int main(){
\u0009int n=read(1,maxn);
\u0009int m=read(1,maxm);
\u0009bool REV=0;
\u0009Fe(i,1,n){
\u0009\u0009ps[i].x=read(1,n);
\u0009\u0009ps[i].y=read(1,n);
\u0009\u0009if(REV)std::swap(ps[i].x,ps[i].y);
\u0009}
\u0009int n0=n;
\u0009xs0.alloc(n);
\u0009ys0.alloc(n);
\u0009Fe(i,1,n){
\u0009\u0009++xs0.a[ps[i].x];
\u0009\u0009++ys0.a[ps[i].y];
\u0009\u0009ps0[i]=ps[i];
\u0009}
\u0009xs0.build();
\u0009ys0.build();
\u0009rsort2(ps0+1,n,KEYL(Pos,y));
\u0009rsort2(ps0+1,n,KEYL(Pos,x));
\u0009xyt.alloc(n);
\u0009Fe(i,1,n){
\u0009\u0009Pos &p=ps0[i];
\u0009\u0009if(p.x\u0021=ps0[i-1].x){
\u0009\u0009\u0009xyt[p.x]=XY(p.x,p.y);
\u0009\u0009\u0009cur[p.x]=i;
\u0009\u0009}
\u0009}
\u0009xyt.range_update(1,n);
\u0009xs.alloc(n);
\u0009ys.alloc(n);
\u0009domt.alloc(n+2);
\u0009domt[1]=1;
\u0009domt[n+2]=1;
\u0009domt.range_update(1,n+2);
\u0009Fe(qi,1,m){
\u0009\u0009int o=read(1,2);
\u0009\u0009int x=read(1,n),y=read(1,n);
\u0009\u0009int qx=read(1,n),qy=read(1,n);
\u0009\u0009if(REV){
\u0009\u0009\u0009o=3-o;
\u0009\u0009\u0009std::swap(x,y);
\u0009\u0009\u0009std::swap(qx,qy);
\u0009\u0009}
\u0009\u0009int mx=x+(o==1),my=y+(o==2);
\u0009\u0009int dp=0;
\u0009\u0009for(;;){
\u0009\u0009\u0009int i=domt.find_lm([my](MinI d){return d.x<=my;});
\u0009\u0009\u0009if(i>mx)break;
\u0009\u0009\u0009ds[++dp]={i,domt[i].x};
\u0009\u0009\u0009domt.update(i,inf);
\u0009\u0009}
\u0009\u0009if(dp){
\u0009\u0009\u0009int x0=ds[1].x,y0=ds[dp].y;
\u0009\u0009\u0009ds[0].y=my;
\u0009\u0009\u0009ds[dp+1].x=mx;
\u0009\u0009\u0009Fe(i,1,dp){
\u0009\u0009\u0009\u0009int x1=ds[i].x,x2=ds[i+1].x-1;
\u0009\u0009\u0009\u0009int y1=ds[i].y,y2=my-1,y3=ds[i-1].y-1;
\u0009\u0009\u0009\u0009if(o==1&&x1<=x2){
\u0009\u0009\u0009\u0009\u0009int s=sumclr(ys,y1,y3);
\u0009\u0009\u0009\u0009\u0009if(s)xs.add(x1,s);
\u0009\u0009\u0009\u0009}
\u0009\u0009\u0009\u0009if(o==2&&y1<=y3){
\u0009\u0009\u0009\u0009\u0009int s=sumclr(xs,x1,x2);
\u0009\u0009\u0009\u0009\u0009if(s)ys.add(y1,s);
\u0009\u0009\u0009\u0009}
\u0009\u0009\u0009\u0009for(;;){
\u0009\u0009\u0009\u0009\u0009int id=f1(x1,x2,y1,y2);
\u0009\u0009\u0009\u0009\u0009if(\u0021id)break;
\u0009\u0009\u0009\u0009\u0009Pos &p=ps0[id];\u0009
\u0009\u0009\u0009\u0009\u0009if(o==1)xs.add(p.x,1);
\u0009\u0009\u0009\u0009\u0009else ys.add(p.y,1);
\u0009\u0009\u0009\u0009\u0009--n0;
\u0009\u0009\u0009\u0009\u0009xs0.add(p.x,-1);
\u0009\u0009\u0009\u0009\u0009ys0.add(p.y,-1);
\u0009\u0009\u0009\u0009}
\u0009\u0009\u0009}
\u0009\u0009\u0009if(x0<mx||x0==mx&&y0==my){
\u0009\u0009\u0009\u0009domt.update(x0,my);
\u0009\u0009\u0009}
\u0009\u0009\u0009if(y0<my){
\u0009\u0009\u0009\u0009domt.update(mx,y0);
\u0009\u0009\u0009}
\u0009\u0009}
\u0009\u0009int y0=domt.query_prefix(qx).x;
\u0009\u0009int ans0=0;
\u0009\u0009if(y0<=qy){
\u0009\u0009\u0009int x0=domt.find_lm([qy](MinI d){return d.x<=qy;});
\u0009\u0009\u0009qs[qp++]={qx+1,qy+1,qi};
\u0009\u0009\u0009ans0+=n;
\u0009\u0009\u0009ans0-=n0-xs0.sum(qx);
\u0009\u0009\u0009ans0-=n0-ys0.sum(qy);
\u0009\u0009\u0009ans0-=xs.query().x-xs.query(x0,qx).x;
\u0009\u0009\u0009ans0-=ys.query().x-ys.query(y0,qy).x;
\u0009\u0009\u0009ans[qi]=ans0;
\u0009\u0009}
\u0009}
\u0009rsort2(qs,qp,KEYL(Q,x));
\u0009BIT<int> bit;
\u0009bit.alloc(n+1);
\u0009int pp=n;
\u0009Fer(i,qp-1,0){
\u0009\u0009Q &q=qs[i];
\u0009\u0009for(;pp&&ps0[pp].x>=q.x;--pp)bit.add(n+1-ps0[pp].y,1);
\u0009\u0009ans[q.id]+=bit.sum(n+1-q.y);
\u0009}
\u0009Fe(i,1,m)write(ans[i],'\n');
\u0009return 0;
}

Details

answer.code:18:1: error: universal character \u0009 is not valid in an identifier
   18 | \u0009int c=ib+BUF_SZ-ip;
      | ^
answer.code:19:1: error: universal character \u0009 is not valid in an identifier
   19 | \u0009if(c<n){
      | ^
answer.code:20:1: error: universal character \u0009 is not valid in an identifier
   20 | \u0009\u0009memcpy(ib,ip,c);
      | ^
answer.code:20:1: error: universal character \u0009 is not valid in an identifier
answer.code:21:1: error: universal character \u0009 is not valid in an identifier
   21 | \u0009\u0009ip=ib;
      | ^
answer.code:21:1: error: universal character \u0009 is not valid in an identifier
answer.code:22:1: error: universal character \u0009 is not valid in an identifier
   22 | \u0009\u0009fread(ib+c,1,BUF_SZ-c,stdin)[ib+c]=0;
      | ^
answer.code:22:1: error: universal character \u0009 is not valid in an identifier
answer.code:23:1: error: universal character \u0009 is not valid in an identifier
   23 | \u0009}
      | ^
answer.code:27:1: error: universal character \u0009 is not valid in an identifier
   27 | \u0009ipre(100);
      | ^
answer.code:28:1: error: universal character \u0009 is not valid in an identifier
   28 | \u0009T x=0,f=1;
      | ^
answer.code:29:1: error: universal character \u0009 is not valid in an identifier
   29 | \u0009while(*ip<'0'||*ip>'9')if(*ip++=='-')f=-f;
      | ^
answer.code:30:1: error: universal character \u0009 is not valid in an identifier
   30 | \u0009while(*ip>='0'&&*ip<='9')x=x*10+*ip++-'0';
      | ^
answer.code:31:1: error: universal character \u0009 is not valid in an identifier
   31 | \u0009x*=f;
      | ^
answer.code:32:1: error: universal character \u0009 is not valid in an identifier
   32 | \u0009if(\u0021(L<=x&&x<=R)){
      | ^
answer.code:32:10: error: universal character \u0021 is not valid in an identifier
   32 | \u0009if(\u0021(L<=x&&x<=R)){
      |          ^
answer.code:33:1: error: universal character \u0009 is not valid in an identifier
   33 | \u0009\u0009std::cerr<<x<<" not in ["<<L<<","<<R<<"]\n";
      | ^
answer.code:33:1: error: universal character \u0009 is not valid in an identifier
answer.code:34:1: error: universal character \u0009 is not valid in an identifier
   34 | \u0009\u0009exit(1);
      | ^
answer.code:34:1: error: universal character \u0009 is not valid in an identifier
answer.code:35:1: error: universal character \u0009 is not valid in an identifier
   35 | \u0009}
      | ^
answer.code:36:1: error: universal character \u0009 is not valid in an identifier
   36 | \u0009return x;
      | ^
answer.code:40:1: error: universal character \u0009 is not valid in an identifier
   40 | \u0009int c=ob+BUF_SZ-op;
      | ^
answer.code:41:1: error: universal character \u0009 is not valid in an identifier
   41 | \u0009if(c<n){
      | ^
answer.code:42:1: error: universal character \u0009 is not valid in an identifier
   42 | \u0009\u0009fwrite(ob,1,BUF_SZ-c,stdout);
      | ^
answer.code:42:1: error: universal character \u0009 is not valid in an identifier
answer.code:43:1: error: universal character \u0009 is not valid in an identifier
   43 | \u0009\u0009op=ob;
      | ^
answer.code:43:1: error: universal character \u0009 is not valid in an identifier
answer.code:44:1: error: universal character \u0009 is not valid in an identifier
   44 | \u0009}
      | ^
answer.code:48:1: error: universal character \u0009 is not valid in an identifier
   48 | \u0009opre(100);
      | ^
answer.code:49:1: error: universal character \u0009 is not valid in an identifier
   49 | \u0009char ss[100],*sp=ss;
      | ^
answer.code:50:1: error: universal character \u0009 is not valid in an identifier
   50 | \u0009if(x<T(0))x=-x,*op++='-';
      | ^
answer.code:51:1: error: universal character \u0009 is not valid in an identifier
   51 | \u0009do *sp++=x%10+'0';while(x/=10);
      | ^
answer.code:52:1: error: universal character \u0009 is not valid in an identifier
   52 | \u0009while(sp\u0021=ss)*op++=*--sp;
      | ^
answer.code:52:13: error: universal character \u0021 is not valid in an identifier
   52 | \u0009while(sp\u0021=ss)*op++=*--sp;
      |             ^
answer.code:56:1: error: universal character \u0009 is not valid in an identifier
   56 | \u0009write(x);
      | ^
answer.code:57:1: error: universal character \u0009 is not valid in an identifier
   57 | \u0009*op++=c;
      | ^
answer.code:60:1: error: universal character \u0009 is not valid in an identifier
   60 | \u0009__(){}
      | ^
answer.code:61:1: error: universal character \u0009 is not valid in an identifier
   61 | \u0009~__(){
      | ^
answer.code:62:1: error: universal character \u0009 is not valid in an identifier
   62 | \u0009\u0009fwrite(ob,1,op-ob,stdout);
      | ^
answer.code:62:1: error: universal character \u0009 is not valid in an identifier
answer.code:63:1: error: universal character \u0009 is not valid in an identifier
   63 | \u0009}
      | ^
answer.code:73:1: error: universal character \u0009 is not valid i...