Why judge shows runtime error for this code?
Difference between en1 and en2, changed 2,498 character(s)

#include<bits/stdc++.h>↵
#define pb push_back↵
#define fin(i,arr,n) for(i=0;i<n;i++)cin>>arr[i]↵
#define fout(i,arr,n) for(i=0;i<n;i++)cout<<arr[i]<<" "↵
#define inf 9223372036854775807↵
#define vi vector<ll>↵
#define init ll n,m,a,i,b,j,k,t,x,y,z,tc,u,v,w↵
#define f(i,n) for(i=0;i<n;i++)↵
#define mem(a,x) memset(a,x,sizeof(a))↵
#define sortt(v)  sort(v.begin(),v.end())↵
#define sitr(itr,st) for(itr=st.begin();itr!=st.end();itr++)↵
#define pr pair<ll,ll>↵
#define pi acos(-1.00)↵
#define mod 1000000007↵
using namespace std;↵
typedef long long ll;↵
struct node↵
{↵
    bool endmark;↵
    node* next[3];↵
    node()↵
    {↵
        endmark=0;↵
        ll i;↵
        f(i,3)↵
        next[i]=NULL;↵
    }↵
}*root;↵

void insert(string str)↵
{↵
   ll sz=str.size();↵
   node* curr=root;↵
   ll i;↵
   f(i,sz)↵
   {↵
       ll id=str[i]-'0';↵
       if(curr->next[id]==NULL)↵
        curr->next[id]=new node();↵
       curr=curr->next[id];↵


   }↵
   curr->endmark=1;↵

}↵
ll query(string str)↵
{↵
    ll sz=str.size();↵
    node* curr=root;↵
    string tt="";↵
    ll i;↵
    f(i,sz)↵
    {↵
        ll id=str[i]-'0';↵
        if(curr->next[!id])↵
            tt+=char('0'+!id),curr=curr->next[!id];↵
        else if(curr->next[id])↵
        {↵
            tt+=char('0'+id),curr=curr->next[id];↵
        }↵
    else tt+=str[i];↵
    }↵
    bitset<40>bit(tt);↵
    return bit.to_ulong();↵
}↵
string binary(ll n)↵
{↵
    ll u;↵
    string tt="";↵
    while(n)↵
    {↵
        u=n%2;↵
        if(u==0)↵
            tt="0"+tt;↵
        else tt="1"+tt;↵
        n/=2;↵
    }↵
    ll sz=tt.size();↵
    for(ll i=0;i<40-sz;i++)↵
        tt="0"+tt;↵
    return tt;↵
}↵
int main()↵
{   ios_base::sync_with_stdio(false);  cin.tie(NULL); cout.tie(NULL);↵
      //freopen("read.txt","r",stdin);↵
      //freopen("write.txt","w",stdout);↵
      init;↵
      root=new node();↵
      ll arr[100005],pre1[100005],pre2[100005],ans=0;↵
      //cout<<binary(12)<<endl;↵
      cin>>n;↵
      f(i,n)↵
      {↵
          cin>>arr[i];↵
          if(i==0)↵
          pre1[i]=arr[i];↵
          else pre1[i]=pre1[i-1]^arr[i];↵
          ans=max(ans,pre1[i]);↵

      }↵
      for(i=n-1;i>=0;i--)↵
      {↵
          if(i==n-1)↵
            pre2[i]=arr[i];↵
          else pre2[i]=pre2[i+1]^arr[i];↵
          ans=max(ans,pre2[i]);↵
      }↵
      for(i=n-2;i>=0;i--)↵
      {↵
          insert(binary(pre2[i+1]));↵
          ans=max(ans,pre1[i]^query(binary(pre1[i])));↵
      }↵
      cout<<ans<<endl;↵






}↵



https://ideone.com/uO7jxh

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en2 English u1804011 2020-11-30 10:47:57 2498
en1 English u1804011 2020-11-30 10:45:11 2553 Initial revision (published)