220304-2種類の溶液
5530 ワード
◾頭溶液:白準2470号 https://www.acmicpc.net/problem/2470 質問する
KOI建設科学研究所は多様な酸性溶液とアルカリ性溶液を持っている.各溶液には整数があり、その溶液の特性を表す.酸性溶液の特性値は、1〜10000000の正の整数で表され、塩基性溶液の特性値は−1〜10000000の負の整数で表される.
2つの溶液を等量混合した溶液の特性値は、混合に用いられる各溶液の特性値の和として定義される.この研究所は等量の2種類の溶液を混合し,特性値が最もゼロに近い溶液を作製しようとしている.
例えば、与えられた溶液の特性値が[2,4,−99,−1,98]であり、特性値が−99の溶液と特性値が98の溶液とを混合すると、特性値が−1の溶液が得られ、この溶液は特性値が最も0に近い溶液である.ちなみに、特性値が0に近い混合溶液を2種類のアルカリ溶液または2種類の酸性溶液のみで製造する場合もある.
酸性溶液とアルカリ性溶液の特性値が与えられている場合は、2つの異なる溶液を混合し、特性値が0に近い2つの溶液を見つけるプログラムを作成します.
入力1行目に溶液全体の数Nを入力する.Nは2以上100000以下である. 2行目には、溶液特性値を示すN個の整数間のスペースが与えられる.これらの数字はいずれも-10000000以上10000000以下です.N個の溶液の特性値が異なり、酸性溶液またはアルカリ性溶液のみが入力される場合もある. しゅつりょく第1行出力特性値が0に近い2種類の溶液の特性値.出力が必要な2種類の溶液は特性値の昇順に出力される.プロパティ値が0の場合、2つ以上の場合、いずれかを出力します. I/O例
InputOutput5-2 4 -99 -1 98-99 98
のり付け
1.解説ダブルポインタでO(n)の時間的複雑さを解決できます. 溶液特性を昇順に並べ、左、右インデックスで探索する. インデックスの値を合わせてゼロに近い値をとる. 値が負の場合は左インデックス+1、値が正の場合は右インデックス-1 合計値が0の場合はその値を返却 2.プログラムn、入力値(昇順ソート) 左、右、result、min value初期化 左・右インデックス位置の値の和を比較する 負数左+1、正数右-1 合計値が0なら終了 Input
5
-2 4 -99 -1 98
KOI建設科学研究所は多様な酸性溶液とアルカリ性溶液を持っている.各溶液には整数があり、その溶液の特性を表す.酸性溶液の特性値は、1〜10000000の正の整数で表され、塩基性溶液の特性値は−1〜10000000の負の整数で表される.
2つの溶液を等量混合した溶液の特性値は、混合に用いられる各溶液の特性値の和として定義される.この研究所は等量の2種類の溶液を混合し,特性値が最もゼロに近い溶液を作製しようとしている.
例えば、与えられた溶液の特性値が[2,4,−99,−1,98]であり、特性値が−99の溶液と特性値が98の溶液とを混合すると、特性値が−1の溶液が得られ、この溶液は特性値が最も0に近い溶液である.ちなみに、特性値が0に近い混合溶液を2種類のアルカリ溶液または2種類の酸性溶液のみで製造する場合もある.
酸性溶液とアルカリ性溶液の特性値が与えられている場合は、2つの異なる溶液を混合し、特性値が0に近い2つの溶液を見つけるプログラムを作成します.
入力
InputOutput5-2 4 -99 -1 98-99 98
のり付け
1.解説
# 코드
n = int(input())
values = sorted(map(int, input().split(' ')))
left = 0
right = n-1
result = [values[left], values[right]]
min_value = abs(values[left] + values[right])
while left < right:
temp = values[left] + values[right]
if abs(temp) < min_value:
min_value = abs(temp)
result = [values[left], values[right]]
if temp < 0:
left += 1
elif temp > 0:
right -= 1
else :
break
print(result[0], result[1])
5
-2 4 -99 -1 98
Reference
この問題について(220304-2種類の溶液), 我々は、より多くの情報をここで見つけました https://velog.io/@skarb4788/220304-두-용액テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol