5504 GT and sequence
2015-10-18 10:27
447 查看
分析:题意就是给你n个数,让你至少选一个数,使得你选的这些数的乘积最大。如果只有1个数,就直接输出了,如果有正数或负数的个数大于2,答案肯定大于0,否则答案为0.
# include <stdio.h>
# include <algorithm>
using namespace std;
int main()
{
int i,n,T,t,f;
__int64 x,ans,a[100];
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
if(n==1)
{
scanf("%I64d",&x);
printf("%I64d\n",x);
continue;
}
t=f=0; ans=1;
for(i=0;i<n;i++)
{
scanf("%I64d",&x);
if(x>0)
ans=ans*x,f=1;
else if(x<0)
a[t++]=x;
}
if(f==0&&t<=1)
{
printf("0\n");
continue;
}
sort(a,a+t);
for(i=0;i<t-1;i+=2)
ans=ans*a[i]*a[i+1];
printf("%I64d\n",ans);
}
return 0;
}
# include <stdio.h>
# include <algorithm>
using namespace std;
int main()
{
int i,n,T,t,f;
__int64 x,ans,a[100];
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
if(n==1)
{
scanf("%I64d",&x);
printf("%I64d\n",x);
continue;
}
t=f=0; ans=1;
for(i=0;i<n;i++)
{
scanf("%I64d",&x);
if(x>0)
ans=ans*x,f=1;
else if(x<0)
a[t++]=x;
}
if(f==0&&t<=1)
{
printf("0\n");
continue;
}
sort(a,a+t);
for(i=0;i<t-1;i+=2)
ans=ans*a[i]*a[i+1];
printf("%I64d\n",ans);
}
return 0;
}
相关文章推荐
- iOS 【UIKit-使用XIB自定义布局】
- Android开发中无处不在的设计模式——Builder模式
- UITabbar 的图标模糊问题及图片显示问题
- 关于如何自定义一个 文本输入框(UITextView) 的思想以及整个操作流程
- Android requires compiler compliance level 5.0 or 6.0. Found '1.4' instead的解决办法
- Win10 Build 10565快速预览版为什么有ISO镜像下载地址?
- 手势识别(UIGestureRecognizer)
- easyui-datagrid个人实例
- LeetCode Longest Consecutive Sequence
- easyui-layout个人实例
- easyui-combotree个人实例
- easyui-combotree个人实例
- N-Queens II 解答
- N-Queens 解答
- StringBuffer与StringBuilder原理与区别
- Hibernate中单向一对多,单向多对一,双向一对多 inverse="true" casecade="save-update"的理解
- Mod 与 RequireJS/SeaJS 的那些事
- Permutation Sequence 解答
- android多分辨率多屏幕密度下UI适配方案
- 2015 NEERC F. Gourmet and Banquet