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