04: 네트워크 담당자(2점)
선경의 주민들은 프로그래밍 지역 경기를 열기로 결정했다.심판위원회는 완전히 자원으로 구성되어 있으며, 그들은 역사상 가장 공정한 경기를 조직하겠다고 약속했다.그들은 선수들의 컴퓨터를 성형 토폴로지 구조로 연결시켜 단일한 센터 서버에 연결시키기로 했다.심판위원회 의장은 이 완전히 공정한 경기를 조직하기 위해 모든 선수의 컴퓨터 등을 서버 주위에 거리를 두고 놓아야 한다고 제안했다.
심판위원회는 인터넷 라인을 구매하기 위해 현지의 한 인터넷 솔루션 제공 업체에 연락하여 일정한 수량의 등장망 라인을 제공할 수 있도록 요구했다.심판위원회는 네트워크가 길어질수록 좋아져 선수들 사이의 거리가 가능한 한 멀어지기를 바란다.
이 회사의 네트워크 담당자가 이 임무를 맡았다.그는 재고 중의 모든 망선의 길이(정확하게 센티미터까지)를 알고 있으며, 그에게 필요한 망선의 길이(정확하게 센티미터까지)를 알려주기만 하면 망선에 대한 절단 작업을 완성할 수 있다.하지만 이번에는 필요한 망선의 길이를 몰라 망선 담당자들이 당황하고 있다.
네트워크 담당자가 가장 긴 네트워크 길이를 정하고 이 길이에 따라 재고 중인 네트워크 라인을 절단하여 지정된 수량의 네트워크 라인을 얻을 수 있도록 프로그램을 작성해야 한다.
입력 첫 번째 줄에는 단일 공백으로 구분되는 두 개의 정수 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
#include
#include
#include
using namespace std;
double x;
long long sum,l,r,mid,a[10005],n,k,ans;
int main()
{
scanf("%lld %lld",&n,&k);
for(int i=1;i<=n;i++)
{
scanf("%lf",&x);
a[i] = x*100;
l=l>a[i]? l:a[i];
sum+=a[i];
}
l=l/k , r=sum/k;
while(l<r)
{
ans =0;
mid=(l+r+1)/2;
for(int i=1;i<=n;i++)
ans += a[i]/mid;
if(ans >=k) l=mid;
else r=mid-1;
}
printf("%.2lf",l/100.0);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.