标签:none can int queue oss osi ring mini lines
Input
Output
Sample Input
5 3 1 2 8 4 9
Sample Output
3
Hint
1 #include <iostream> 2 using namespace std; 3 #include<string.h> 4 #include<set> 5 #include<stdio.h> 6 #include<math.h> 7 #include<queue> 8 #include<map> 9 #include<algorithm> 10 #include<cstdio> 11 #include<cmath> 12 #include<cstring> 13 #include <cstdio> 14 #include <cstdlib> 15 #include<stack> 16 #include<vector> 17 long long n,k; 18 long long a[110000]; 19 long long panduan(long long zhi) 20 { 21 int add=1; 22 int kaishi=1,jieshu=1; 23 while(1) 24 { 25 if(a[jieshu]-a[kaishi]<zhi&&jieshu<=n) 26 { 27 jieshu++; 28 } 29 else if(a[jieshu]-a[kaishi]>=zhi) 30 { 31 add++; 32 kaishi=jieshu; 33 } 34 else 35 break; 36 } 37 //cout<<zhi<<"_"<<add<<endl; 38 return add; 39 } 40 int main() 41 { 42 scanf("%lld %lld",&n,&k); 43 for(long long i=1;i<=n;i++) 44 scanf("%lld",&a[i]); 45 sort(a+1,a+1+n); 46 long long kaishi=0,jieshu=1e18; 47 long long mid; 48 long long t; 49 while(kaishi<jieshu-1) 50 { 51 //cout<<kaishi<<"_"<<jieshu<<endl; 52 mid=(kaishi+jieshu)>>1; 53 if(panduan(mid)>=k) 54 kaishi=mid; 55 else 56 jieshu=mid; 57 } 58 cout<<kaishi<<endl; 59 return 0; 60 }
标签:none can int queue oss osi ring mini lines
原文地址:http://www.cnblogs.com/dulute/p/7966712.html