UVA 11039 模拟

来源:互联网 发布:数据分析挖掘与r语言 编辑:程序博客网 时间:2024/05/16 10:58

题目输入 -999999 - 999999

将负数变为正数,并且在num中标记为负数(true)

从后往前取,一正一负(一负一正)

UVA 11039

#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <cstdlib>#include <algorithm>using namespace std;#define maxn 1000000int arr[maxn];bool num[maxn];int main(){int T,N,a;scanf("%d",&T);while(T--){memset(num,false,sizeof(num));scanf("%d",&N);for(int i = 0; i < N; i++){scanf("%d",&arr[i]);if(arr[i]<0){num[-arr[i]] = true;arr[i] = -arr[i];}}sort(arr,arr+N);int ans = 1;bool flag = num[arr[N-1]];for(int i = N-2; i >= 0; i--){if(num[arr[i]]!=flag){ans++;flag = num[arr[i]];}}printf("%d\n",ans);}return 0;}


原创粉丝点击