比赛 2025.3.18 评测结果 AAATTTTTTT
题目名称 公约数数列 最终得分 30
用户昵称 郑霁桓 运行时间 21.362 s
代码语言 C++ 内存使用 3.80 MiB
提交时间 2025-03-18 21:42:07
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
string s;
long long n,m,a[100005],x,y,g,xx;
int main(){
    freopen("gcdxor.in","r",stdin);
    freopen("gcdxor.out","w",stdout);
    ios::sync_with_stdio(false);
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    cin>>m;
    while(m--){
        cin>>s>>x;
        if(s[0]=='M') cin>>y,a[x+1]=y;
        else{
            if(a[1]*a[1]==x) cout<<"0\n";
            else{
            g=xx=a[1];
            for(int i=2;i<=n;i++){
                g=__gcd(g,a[i]),xx^=a[i];
                if(g*xx==x){cout<<i-1<<"\n";break;}
            }
            if(g*xx!=x) cout<<"no\n";}
        }
    }
    return 0;
}