結果
問題 | No.190 Dry Wet Moist |
ユーザー |
|
提出日時 | 2016-09-29 11:57:13 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 437 ms / 2,000 ms |
コード長 | 1,138 bytes |
コンパイル時間 | 46 ms |
コンパイル使用メモリ | 7,040 KB |
実行使用メモリ | 34,068 KB |
最終ジャッジ日時 | 2024-11-21 10:26:06 |
合計ジャッジ時間 | 4,712 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 28 |
ソースコード
from collections import CounterN = 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, min(len(posi),len(zero))+max(0, len(posi)-len(zero))/2, len(zero)/2exit()if len(posi) == 0:print min(len(nega),len(zero))+max(0, len(nega)-len(zero))/2, 0, len(zero)/2exit()nega_n = 0p1 = 0p2 = len(posi)-1while p1 < len(nega) and p2 >= 0:if nega[p1]+posi[p2] < 0:p1 += 1p2 -= 1nega_n += 1else:p2 -= 1nega_n += min(len(zero), len(nega)-nega_n) + max(0,(len(nega)-nega_n-len(zero))/2)posi_n = 0p1 = 0p2 = len(posi)-1while p1 < len(nega) and p2 >= 0:if nega[p1]+posi[p2] > 0:p1 += 1p2 -= 1posi_n += 1else:p1 += 1posi_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)/2for k in c1:moist += min(c1[k], c2[k])print nega_n, posi_n, moist