(IO 파일) : 입력 : cowcar.in 출력 : cowcar.out
시간 제한 : 1000 MS 공간 제약 : 26만2천1백44킬로바이트의 특정 제한
고토 ProblemSet을
제목 설명
고속도로가
번째의 소
, 각각의 소는 차량의 난에 암소의 속력을 유도
, 도로 총 말해
차선
. 보안을 위해 가축의 각각의 헤드는 다음과 같은 원칙은 다음과 같습니다이 같은 차선의 앞
속도 소, 소 줄일 수
물론 떨어지지
이하 차속되어야
. 그래서 더 빨리 앞에 차 뒤에 차보다 훨씬에서 자동차로, 당신은 발생하는 충돌에 대해 걱정할 필요가 없습니다.
고속도로에서 최소 속도 제한이
, 차량의 속도보다 모두 낮은 지금 당신은 고속도로에서 운전 얼마나 많은 자동차의 총을 계산할 수있다, 고속에서 허용되지 않습니다.
입력
첫 번째
라인 :
공간을 분리 정수
]
의
: 라인
행은 i 번째 제 1 속도 암소에 기재된.
출력
라인 : 높은 속도로 여행 달구지의 출력 정수 최대 수입니다.
샘플 입력
. 3. 1. 5.1
. 5
. 7
. 5
샘플 출력
2
데이터 범위 제한
아이디어를 문제 해결
이 질문은 명백한 아날로그 열거 폭력이다.
우리는 고속도로, 가축의 속도를 전면에, 소형의 속도를 말을하는 것입니다 더 감쇠,보다 후, 제목에서 알 수 및 큰 속도 뒷면 유리하다에 따라서, 수 첫 번째 순서.
이 트랙은이 차를 보내 줄 수 있는지 열거 자동차와 트랙, 그것은 추적하고 포인터를 경주한다
. 그렇지 않은 경우는 자동차로 대체됩니다. 트랙이 맞지 않는 다음 트랙 경주의 현재 수이 경주 트랙 뒤에 또한 경우에도 때문에,이 트랙에 맞지 않는, 다시 확실하게 (사실, 차 등분 만들기 위해 노력하고 무엇을 이해하는 것이 적합하지 않습니다 스피드 웨이). 다음 출력
캔.
코드
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;
int n,m,d,l,k,ans,a[50010],b[50010];
string s;
int main(){
freopen("cowcar.in","r",stdin);
freopen("cowcar.out","w",stdout);
scanf("%d%d%d%d",&n,&m,&d,&l);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
sort(a+1,a+n+1);
int i=1,j=1;
while(1)
{
k=a[i]-b[j]*d;
if(k>=l)
{
ans++;
b[j]++;
j++;
i++;
if(j>m)
j=1;
if(i>n)
break;
}
else
{
i++;
if(i>n)
break;
}
}
printf("%d",ans);
}