結果
| 問題 | No.507 ゲーム大会(チーム決め) | 
| コンテスト | |
| ユーザー |  nmnmnmnmnmnmnm | 
| 提出日時 | 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
