結果
問題 | No.507 ゲーム大会(チーム決め) |
ユーザー |
![]() |
提出日時 | 2017-03-19 23:36:12 |
言語 | Python2 (2.7.18) |
結果 |
AC
|
実行時間 | 768 ms / 3,000 ms |
コード長 | 584 bytes |
コンパイル時間 | 105 ms |
コンパイル使用メモリ | 7,040 KB |
実行使用メモリ | 11,288 KB |
最終ジャッジ日時 | 2024-07-04 23:40:15 |
合計ジャッジ時間 | 8,359 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 19 |
ソースコード
n,m = map(int,raw_input().split()) if not 2 <= n <= 100000: exit() if not n%2 == 0: exit() if not 1 <= m <= n/2: exit() x = input(); a = [] if not 1 <= x <= 1000000000: exit() def f(d): b = a[:d]+a[d+1:]; c = 0 i1 = 0; i2 = len(b)-1 while(i1<i2): if b[i1]+b[i2]>a[d]+x: c+=1; i1+=1; i2-=1; else: i1+=1; return 1 if c < m else 0 for i in xrange(n-1): a.append(input()) for i in a: if not 1 <= i <= 1000000000: exit() a.sort() low = 0; high = len(a)-1 while(low < high): mid = (high+low)/2 if f(mid) == 1: high = mid else: low = mid+1 print a[low] if f(low) == 1 else -1