#include
#include
#include
#include
#define ll long long
using namespace std;
int read()
{
int k=0,f=1;char c=getchar();
for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;
for(;isdigit(c);c=getchar()) k=k*10+c-'0';return k*f;
}
const int N=1000055;
int T,n,m,a[N],pos[N][35],base[N][35],Base[35],Pos[35];
void build(int p,int x)
{
for(int i=29;i>=0;i--)
{
if(x&(1<Pos[i])
swap(p,Pos[i]),swap(x,Base[i]);
}
x^=Base[i];
}
}
}
int main()
{
for(T=read();T;T--)
{
memset(Base,0,sizeof(Base));
memset(Pos,0,sizeof(Pos));
n=read();m=read();
for(int i=1;i<=n;i++)
a[i]=read();
for(int i=1;i<=n;i++)
{
build(i,a[i]);
for(int j=0;j<=29;j++)
base[i][j]=Base[j],pos[i][j]=Pos[j];
}
int lans=0;
for(int i=1;i<=m;i++)
{
int l,r,opt;
opt=read();
if(!opt)
{
l=(read()^lans)%n+1;
r=(read()^lans)%n+1;
if(l>r) swap(l,r);
int ans=0;
for(int j=29;j>=0;j--)
{
if(pos[r][j]>=l)
{
if((ans^base[r][j])>ans)
ans=ans^base[r][j];
}
}
printf("%d\n",lans=ans);
}
else
{
l=read()^lans;
n++;a[n]=l;
build(n,a[n]);
for(int j=0;j<=29;j++)
base[n][j]=Base[j],pos[n][j]=Pos[j];
}
}
}
return 0;
}
#include
#include
#include
#include
using namespace std;
int read()
{
int k=0,f=1;char c=getchar();
for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;
for(;isdigit(c);c=getchar()) k=k*10+c-'0';return f*k;
}
const int N=100055;
int n,m,l[N],s[N],v[N];
int main()
{
while(scanf("%d",&n)!=EOF)
{
for(int i=0;i<=n;i++)
scanf("%d",&l[i]);
for(int i=0;i<=n;i++)
scanf("%d",&s[i]);
for(int i=0;i<=n;i++)
scanf("%d",&v[i]);
double ans=1.*s[0]/v[0],sum=0;
for(int i=1;i<=n;i++)
{
sum+=l[i];
ans=max(ans,((sum+s[i])/v[i]));
}
printf("%.8f\n",ans);
}
return 0;
}
#include
#include
#include
#include
#include
#define ll long long
#define int long long
using namespace std;
int read()
{
int k=0,f=1;char c=getchar();
for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;
for(;isdigit(c);c=getchar()) k=k*10+c-'0';return k*f;
}
const int N=200055;
const ll inf=1ll<<60;
typedef pair P;
int T,n,m,s,t;
int tot=1,iter[N],head[N],to[N],nextt[N],w[N],d[N],vis[N];
queue q;
struct graph
{
int tot=0,to[N],nextt[N],head[N],w[N];
int u[N],v[N],c[N];
ll dis[N];
priority_queue ,greater
> q;
void add(int a,int b,int c)
{
to[++tot]=b;
w[tot]=c;
nextt[tot]=head[a];
head[a]=tot;
}
void dij()
{
for(int i=2;i<=n;i++)
dis[i]=1ll<<60;
dis[1]=0;
q.push(P(0,1));
while(!q.empty())
{
P k=q.top();q.pop();
int u=k.second;if(dis[u]dis[u]+w[i])
{
dis[to[i]]=dis[u]+w[i];
q.push(P(dis[to[i]],to[i]));
}
}
}
}G;
void add(int a,int b,int c)
{
to[++tot]=b;
w[tot]=c;
nextt[tot]=head[a];
head[a]=tot;
}
bool bfs()
{
for(int i=1;i<=n;i++) d[i]=-1;
d[s]=0;q.push(s);
while(!q.empty())
{
int u=q.front();q.pop();
for(int i=head[u];i;i=nextt[i])
if(w[i]>0&&d[to[i]]==-1)
d[to[i]]=d[u]+1,q.push(to[i]);
}
return d[t]!=-1;
}
int dfs(int u,int f)
{
if(f==0||u==t) return f;
for(int &i=iter[u];i;i=nextt[i])
{
if(d[to[i]]==d[u]+1&&w[i]>0)
{
int ff=dfs(to[i],min(f,w[i]));
if(ff>0)
{
w[i]-=ff;w[i^1]+=ff;
return ff;
}
}
}
return 0;
}
int dinic()
{
int fl=0,f;
while(1)
{
if(!bfs()) return fl;
for(int i=1;i<=n;i++)
iter[i]=head[i];
while(f=dfs(s,inf)) fl+=f;
}
return fl;
}
main()
{
for(T=read();T;T--)
{
G.tot=0;
for(int i=1;i<=n;i++)
G.head[i]=0;
for(int i=1;i<=tot;i++)
head[i]=0;
tot=1;
n=read();m=read();
for(int i=1;i<=m;i++)
{
int a,b,c;
a=read();b=read();c=read();
G.u[i]=a;G.v[i]=b;G.c[i]=c;
G.add(a,b,c);
}
G.dij();
for(int i=1;i<=m;i++)
{
if(G.dis[G.u[i]]+G.c[i]==G.dis[G.v[i]])
{
add(G.u[i],G.v[i],G.c[i]);
add(G.v[i],G.u[i],0);
}
}
s=1;t=n;
printf("%lld\n",dinic());
}
return 0;
}
#include
#include
#include
#include
#define ll long long
using namespace std;
int read()
{
int k=0,f=1;char c=getchar();
for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;
for(;isdigit(c);c=getchar()) k=k*10+c-'0';return k*f;
}
const int N=400055;
int n,m,ch[N][26],mxlen,P,Q;
ll dp[N];
int last,tot,link[N],len[N],size[N];
char s[N];
void init()
{
for(int i=0;i<=tot;i++) memset(ch[i],0,sizeof(ch[i]));
last=tot=0;len[0]=0;link[0]=-1;
}
void extend(int c)
{
int cur=++tot,p=last;len[cur]=len[last]+1;size[cur]=1;
for(;p!=-1&&!ch[p][c];p=link[p]) ch[p][c]=cur;
if(p==-1) link[cur]=0;
else
{
int q=ch[p][c];
if(len[p]+1==len[q]) link[cur]=q;
else
{
int clone=++tot;
len[clone]=len[p]+1;
link[clone]=link[q];
memcpy(ch[clone],ch[q],sizeof(ch[q]));
for(;p!=-1&&ch[p][c]==q;p=link[p])
ch[p][c]=clone;
link[q]=clone;link[cur]=clone;
}
}
last=cur;
}
int get(int p,int c,int opt)
{
if(ch[p][c])
{
p=ch[p][c];
if(opt==1) mxlen++;
}
else
{
while(p!=-1&&!ch[p][c])
p=link[p];
if(p==-1) p=0,mxlen=0;
else mxlen=len[p]+1,p=ch[p][c];
}
if(opt) return mxlen;
return p;
}
int main()
{
while(scanf("%s",s+1)!=EOF)
{
int l=strlen(s+1);
init();scanf("%d%d",&P,&Q);
int inslen=0,pos=0;mxlen=0;
for(int i=1;i<=l;i++)
{
dp[i]=dp[i-1]+P;
if(get(pos,s[i]-'a',1)+inslen>=i)
{
dp[i]=min(dp[i],dp[inslen]+Q);
pos=get(pos,s[i]-'a',0);
}
else
{
while(get(pos,s[i]-'a',1)+inslen
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define mem(a,b) memset(a,b,sizeof(a))
typedef long long LL;
typedef pair PII;
#define X first
#define Y second
inline __int128 read()
{
__int128 x=0,f=1;char c=getchar();
while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}
while(isdigit(c)){x=x*10+c-'0';c=getchar();}
return x*f;
}
__int128 n,ans;
const int MOD=998244353,maxN=10000000;
int T,prime[maxN+10],len,A,sqrt3N,phi[maxN+10],phii[maxN+10],pre[maxN+10],inv2=499122177;
bool vis[maxN+10];
void calc()
{
phi[1]=1;phii[1]=1;
for(int i=2;i<=maxN;i++)
{
if(!vis[i])prime[++len]=i,phi[i]=i-1;
for(int j=1;j<=len;j++)
{
if(i*prime[j]>maxN)break;
vis[i*prime[j]]=1;
if(i%prime[j]==0){
phi[i*prime[j]]=phi[i]*prime[j];
break;
}
else phi[i*prime[j]]=phi[i]*(prime[j]-1);
}
}
for(int i=1;i<=maxN;i++)phii[i]=((LL)i*(LL)phi[i])%MOD;
for(int i=1;i<=maxN;i++)pre[i]=((LL)pre[i-1]+(LL)phi[i])%MOD,phii[i]=((LL)phii[i-1]+(LL)phii[i])%MOD;
}
__int128 sqrt3(__int128 N)
{
__int128 l=0,r=1e9;
while(r-l>1)
{
__int128 mid=(l+r)/2;
if(mid*mid*mid