DOJ logoDOJ
题目
最近添加的题目收藏的题目Workbooks
分类DLC比赛小组团队讨论区
排名
解题数量排行榜连续解题排名DOJ Power 排行榜
评测状态
征题登录注册
DOJ logoDOJ

支持 OI 子任务计分、Elo 等级分和 Discord 认证的社区在线评测系统。

题目
题目列表分类
社区
比赛排名讨论区公告举办外部比赛指南
账号
登录注册评测状态
政策
服务条款DLC 使用规则隐私政策API 文档语言运行环境比赛排名奖励评级与表现
© 2026 DOJ
保留所有权利
题解

두 수열

返回题目

题解

각 수열에서 필요한 정보는 최솟값과 최댓값뿐이다.

어떤 수 xxx를 다른 수열의 원소와 곱한다고 하자. xxx가 양수이면 곱을 크게 만들기 위해서는 상대 수열의 최댓값을 고르는 것이 최적이다. xxx가 음수이면 곱을 크게 만들기 위해서는 상대 수열의 최솟값을 고르는 것이 최적이다. x=0x=0x=0인 경우도 최솟값과 최댓값 후보 안에서 함께 처리된다.

따라서 최적해는 다음 네 값 중 하나이다.

min⁡(A)min⁡(B),min⁡(A)max⁡(B),max⁡(A)min⁡(B),max⁡(A)max⁡(B)\min(A)\min(B),\quad \min(A)\max(B),\quad \max(A)\min(B),\quad \max(A)\max(B)min(A)min(B),min(A)max(B),max(A)min(B),max(A)max(B)

네 값의 최댓값을 출력하면 된다. 시간 복잡도는 O(N)O(N)O(N)이고, 메모리 복잡도는 O(1)O(1)O(1)이다.