OpenJudge noi 04 네트워크 관리자
심판위원회는 인터넷 라인을 구매하기 위해 현지의 한 인터넷 솔루션 제공 업체에 연락하여 일정한 수량의 등장망 라인을 제공할 수 있도록 요구했다.심판위원회는 네트워크가 길어질수록 좋아져 선수들 사이의 거리가 가능한 한 멀어지기를 바란다.
이 회사의 네트워크 담당자가 이 임무를 맡았다.그는 재고 중의 모든 망선의 길이(정확하게 센티미터까지)를 알고 있으며, 그에게 필요한 망선의 길이(정확하게 센티미터까지)를 알려주기만 하면 망선에 대한 절단 작업을 완성할 수 있다.하지만 이번에는 필요한 망선의 길이를 몰라 망선 담당자들이 당황하고 있다.
네트워크 담당자가 가장 긴 네트워크 길이를 정하고 이 길이에 따라 재고 중인 네트워크 라인을 절단하여 지정된 수량의 네트워크 라인을 얻을 수 있도록 프로그램을 작성해야 한다.
입력 첫 번째 줄에는 단일 공백으로 구분되는 두 개의 정수 N과 K가 포함되어 있습니다.N(1<=N<=10000)은 재고 중인 네트워크 수이고, K(1<=K<=10000)는 필요한 네트워크 수량이다.다음 N행은 재고 중인 각 네트워크 라인의 길이(단위: 미터)를 줄마다 세어 줍니다.모든 망선의 길이는 적어도 1m, 많게는 100km이다.입력의 모든 길이는 센티미터까지 정확합니다. 즉, 소수점 뒤에 두 자리까지 유지됩니다.출력 네트워크 담당자는 재고 네트워크 라인에서 지정된 수량의 네트워크 라인을 가장 긴 길이(단위: 미터)로 잘라낼 수 있습니다.반드시 센티미터까지 정확하게 해야 한다. 즉, 소수점 뒤에 두 자리까지 보존해야 한다.길이가 1cm 이상인 네트워킹을 지정할 수 없는 경우 따옴표 없이 0.00을 출력해야 합니다.샘플 입력 4 11 8.02 7.43 4.57 5.39 샘플 출력 2.00
2분 답안: 이 문제는 우선 더블로 할 수 없습니다. 카드 정밀도,, 본인이 직접 측정합니다...두 명의 소수를 보류하기 때문에, 우리는 그에게 *100을 int 2분 답안으로 바꾸라고 했다
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
const int maxn=100005;
int a[maxn];
int n,k;
bool check(int mid)
{
int ans=0;
for(int i=1;i<=n;i++)
ans+=a[i]/mid;
if(ans<k)
return false;
return true;
}
int main()
{
int r=-1;
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
{
double ch;
cin>>ch;
a[i]=ch*100;
// printf("%d
",(int)a[i]);
r=max(r,a[i]);
}
int l=0;
r++;
while(r-l>1)
{
int mid=(l+r)>>1;
if(check(mid))
l=mid;
else
r=mid;
}
printf("%.2lf",l/100.0);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.