結果
| 問題 |
No.190 Dry Wet Moist
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-09-29 11:54:33 |
| 言語 | Python2 (2.7.18) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,108 bytes |
| コンパイル時間 | 110 ms |
| コンパイル使用メモリ | 7,040 KB |
| 実行使用メモリ | 34,072 KB |
| 最終ジャッジ日時 | 2024-11-21 10:26:01 |
| 合計ジャッジ時間 | 4,802 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 27 WA * 1 |
ソースコード
from collections import Counter
N = input()
A = sorted(map(int, raw_input().split()))
nega = []
zero = []
posi = []
for a in A:
if a < 0:
nega.append(a)
elif a == 0:
zero.append(a)
else:
posi.append(a)
if len(nega) == 0:
print 0, len(zero)+max(0, len(posi)-len(zero))/2, len(zero)/2
exit()
if len(posi) == 0:
print len(zero)+max(0, len(nega)-len(zero))/2, 0, len(zero)/2
exit()
nega_n = 0
p1 = 0
p2 = len(posi)-1
while p1 < len(nega) and p2 >= 0:
if nega[p1]+posi[p2] < 0:
p1 += 1
p2 -= 1
nega_n += 1
else:
p2 -= 1
nega_n += min(len(zero), len(nega)-nega_n) + max(0,(len(nega)-nega_n-len(zero))/2)
posi_n = 0
p1 = 0
p2 = len(posi)-1
while p1 < len(nega) and p2 >= 0:
if nega[p1]+posi[p2] > 0:
p1 += 1
p2 -= 1
posi_n += 1
else:
p1 += 1
posi_n += min(len(zero), len(posi)-posi_n) + max(0,(len(posi)-posi_n-len(zero))/2)
nega = map(abs, nega)
c1 = Counter(nega)
c2 = Counter(posi)
moist = len(zero)/2
for k in c1:
moist += min(c1[k], c2[k])
print nega_n, posi_n, moist