又是水题,排序+计数遍历。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| #include<iostream> #include<algorithm> #include<cstdlib> #include<vector> using namespace std; bool cmp(int a, int b){ return abs(a)<abs(b); } int main(){ ios::sync_with_stdio(false); int n,t; cin>>t; while(t--){ cin>>n; vector<int> a,b; int k; while(n--){ cin>>k; a.push_back(k); } sort(a.begin(),a.end(),cmp); bool flag=false; if(a[0]>0) flag=true; int cnt=1; for(int i=1;i<a.size();i++) if((flag&&a[i]<0)||(!flag&&a[i]>0)){ flag=!flag; cnt++; } cout<<cnt<<endl; } return 0; }
|
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **