[BOJ 1026]宝物(Python)


質問する


https://www.acmicpc.net/problem/1026

これはS = A[0]×B[0] + ... + A[N-1]×B[N-1]で、Sの最高価格を求める問題です.

問題を解く


[Bも位置合わせ]


解けばいいじゃないか.🙂
Aはソートで、Bは逆ソートで、それから乗算して最高値を求めます.

コード#コード#

import sys
input = sys.stdin.readline

n = int(input())
a = []
b = []

a = sorted(list(map(int,input().rsplit())))
b = sorted(list(map(int,input().rsplit())),reverse=True)

sum = 0
for i in range(n):
    sum += (a[i]*b[i])

print(sum)

[ソートしない]


宰旭炒めコード!

コード#コード#

N=int(input())
V=list(map(int,input().split()))
M=list(map(int,input().split()))
A=0
for i in range(N):
    A+=min(V)*max(M)
    V.pop(V.index(min(V)))
    M.pop(M.index(max(M)))
print(A)
  • A配列で最も上昇し、B配列で最も値を見つけ、Sを乗じた.
  • Aの最高値、Bの最高値はアレイから
  • を削除する.
  • にはこの方法もあるでしょう.👁🕳👁❗️