题目描述

给定N个整数A1, A2, ... AN。请你从中选出K个数,使其乘积最大。

请你求出最大的乘积,由于乘积可能超出整型范围,你只需输出乘积除以1000000009的余数。

注意,如果X<0, 我们定义X除以1000000009的余数是负(-X)除以1000000009的余数。
即:0-((0-x) % 1000000009)

输入

第一行包含两个整数N和K。

以下N行每行一个整数Ai。

对于40%的数据,1 <= K <= N <= 100
对于60%的数据,1 <= K <= 1000
对于100%的数据,1 <= K <= N <= 100000 -100000 <= Ai <= 100000

输出

一个整数,表示答案。

样例输入

5 3
-100000
-10000
2
100000
10000 

样例输出

999100009

代码:(时间超限。。)

n,k=map(int,input().split())
nums=[]
for i in range(n):nums.append(int(input()))nums.sort()
fushu=[i for i in nums if i<0]
result=1
if k%2==0:if len(fushu)%2==0:while k:result=result*max(nums[0]*nums[1],nums[-1]*nums[-2])k=k-2if max(nums[0]*nums[1],nums[-1]*nums[-2])==nums[0]*nums[1]:nums.pop(0)nums.pop(1)else:nums.pop(-1)nums.pop(-2)else:maxfushu=fushu[-1]nums.remove(maxfushu)while k:result=result*max(nums[0]*nums[1],nums[-1]*nums[-2])k=k-2if max(nums[0]*nums[1],nums[-1]*nums[-2])==nums[0]*nums[1]:nums.pop(0)nums.pop(1)else:nums.pop(-1)nums.pop(-2)
else:if len(fushu)==len(nums):nums1=nums[-k:-1]for i in range(k):result=result*nums1[i]else:result=result*nums[-1]k=k-1del nums[-1]if len(fushu)%2==0:while k:result=result*max(nums[0]*nums[1],nums[-1]*nums[-2])k=k-2if max(nums[0]*nums[1],nums[-1]*nums[-2])==nums[0]*nums[1]:nums.pop(0)nums.pop(1)else: nums.pop(-1)nums.pop(-2)else:maxfushu=fushu[-1]nums.remove(maxfushu)while k:result=result*max(nums[0]*nums[1],nums[-1]*nums[-2])k=k-2if max(nums[0]*nums[1],nums[-1]*nums[-2])==nums[0]*nums[1]:nums.pop(0)nums.pop(1)else:nums.pop(-1)nums.pop(-2)
if result>=0:print(result%1000000009)
else:print(0-(0-result)%1000000009)

乘积最大python相关推荐

  1. 2018拼多多校招【最大乘积】Python解法

    题目描述 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 无序整数数组A[n] 输出描述: 满足条件的最大乘积 ...

  2. 拼多多校招----最大乘积(python)

    一.题目 题目描述 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 无序整数数组A[n] 输出描述: 满足条件 ...

  3. python找最长的单词_318. 最长单词长度乘积(Python)

    题目 难度:★★★☆☆ 类型:数组,字符串 方法:无 给定一个字符串数组 words,找到 length(word[i]) * length(word[j]) 的最大值,并且这两个单词不含有公共字母. ...

  4. 【Python】求笛卡尔乘积

    在数学中,两个集合X和Y的笛卡尓乘积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员.假设集合A={a,b},集合 ...

  5. python 笛卡尔_Python实现求笛卡尔乘积的方法

    本文实例讲述了Python实现求笛卡尔乘积的方法.分享给大家供大家参考,具体如下: 在数学中,两个集合X和Y的笛卡尓乘积(Cartesian product),又称直积,表示为X × Y,第一个对象是 ...

  6. python求乘积_Python实现求笛卡尔乘积的方法

    Python实现求笛卡尔乘积的方法 本文实例讲述了Python实现求笛卡尔乘积的方法.分享给大家供大家参考,具体如下: 在数学中,两个集合X和Y的笛卡尓乘积(Cartesian product),又称 ...

  7. python求乘积_Python实现求笛卡尔乘积方法详解

    这篇文章主要介绍了Python实现求笛卡尔乘积的方法,结合实例形式分析了Python计算笛卡尔乘积的原理与实现技巧,需要的朋友可以参考下 本文实例讲述了Python实现求笛卡尔乘积的方法.分享给大家供 ...

  8. Python机器视觉编程常用数据结构与示例

    Python机器视觉编程常用数据结构与示例 本文总结了使用Python进行机器视觉(图像处理)编程时常用的数据结构,主要包括以下内容: 数据结构 通用序列操作:索引(indexing).分片(slic ...

  9. 10个你必须知道的Python内置函数

    自从把精力投入到次幂数据(www.cimidata.com) 这个产品后,貌似很久很久没有写过原创文章了,人一旦懒起来也会形成习惯,反之亦然.一个目标之所以难以坚持,很大可能是太大了. 在我们的一个跑 ...

最新文章

  1. Python3破冰人工智能,你需要掌握一些数学方法
  2. 应用程序框架实战三十六:CRUD实战演练介绍
  3. 使用SharedPreferences存储和读取数据
  4. 为view设置虚线边框
  5. Vue工程报错解决方案Warn:import Vue from “vue“;
  6. linux 下 Apache自启动 配置方法
  7. 群体智能优化算法之猫群算法(Cat Swarm Optimization)
  8. EPS FB信令流程
  9. 从月薪3000到月薪过万:做什么工作才能过上想要的生活
  10. strongswan与sangfor的ikev2配置
  11. python - 作业13:打地鼠小游戏(附代码)
  12. DWG中注记类型属性转换
  13. 内网穿透软件对比——cpolar : 网云穿(下)
  14. 算法之大数运算加减法源代码
  15. 怎么放慢音乐速度_为什么我的相机放慢速度或停止连拍?
  16. (1) DPDK 简介
  17. excel函数公式大全,最常用的6个公式
  18. 基于JAVA的类与对象做出的英雄打怪兽程序
  19. linux开发板汉字显示,Linux Qt 及Arm开发板汉字显示
  20. 零点极点传递函数以及伯德图

热门文章

  1. Db2数据分布不均匀导致的select ... fetch first n rows only性能问题
  2. c语言编码rna翻译,哪位大牛有哈夫曼编码的C语言源程序,麻烦帮帮忙啦!
  3. UICollectionView 适配 iPhone 7 Plus
  4. Graph Coverage
  5. CSS砖头盖大楼(一)
  6. 读卡器插电脑不显示盘符
  7. Ted英语单词-A brief history of alcohol
  8. 2017ACM暑期多校联合训练 - Team 8 1011 HDU 6143 Killer Names (容斥+排列组合,dp+整数快速幂)...
  9. Microsoft Visual Studio 2019正式版离线安装包下载
  10. OSChina 周一乱弹 —— 怎么搭讪学医的女孩,说你有病!