当总和不是x的倍数时,答案就是n;当数组里所有数是x的倍数时,答案是-1;否则从两侧一直往中间收缩,答案就是max (n-l,r-1)
| #include <iostream> |
| using namespace std; |
| const int N = 100010; |
| int n,x,sum; |
| int a[N]; |
| int main () { |
| int T; |
| cin >> T; |
| while (T--) { |
| sum = 0; |
| bool flag = true; |
| cin >> n >> x; |
| for (int i = 1;i <= n;i++) { |
| cin >> a[i]; |
| sum += a[i]; |
| if (a[i]%x) flag = false; |
| } |
| if (sum%x) cout << n << endl; |
| else if (flag) cout << -1 << endl; |
| else { |
| int l = 1,r = n; |
| while (a[l]%x == 0) l++; |
| while (a[r]%x == 0) r--; |
| cout << max (n-l,r-1) << endl; |
| } |
| } |
| return 0; |
| } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战