codeforces-gym-100187-F【贪心】

题目链接:点击打开链接

F. Doomsday
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

Doomsday comes in t units of time. In anticipation of such a significant event n people prepared m vaults in which, as they think, it will be possible to survive. But each vault can accommodate only k people and each person can pass only one unit of distance per one unit of time. Fortunately, all people and vaults are now on the straight line, so there is no confusion and calculations should be simple.

You are given the positions of the people and the vaults on the line. You are to find the maximal number of people who can hide in vaults and think they will survive.

Input

The first line contains four integers nmk and t (1 ≤ n, m, k ≤ 2000001 ≤ t ≤ 109) separated by spaces — the number of people, the number of vaults, the capacity of one vault and the time left to the Doomsday.

The second line contains n integers separated by spaces — the coordinates of the people on the line.

The third line contains m integers separated by spaces — the coordinates of the vaults on the line.

All the coordinates are between  - 109 and 109, inclusively.

Output

Output one integer — the maximal number of people who can hide in vaults and think they will survive.

Examples
input
2 2 1 5
45 55
40 60
output
2
input
2 2 1 5
45 54
40 60
output
1
input
2 2 2 5
45 35
40 60
output
2
input
3 3 1 5
40 45 45
45 50 50
output
3


大意:世界末日在 t 秒后要来了,n 个人,m 个避难所,一个避难所最多容纳 k 个人,每个人一秒只能走 1 米,给出所有人,所有避难所的位置(都位于同一直线上),问最后最多几个人可以活下来。


思路:就是贪心,一直挂在 test11 上,后来改了才过。

#include
#include
#include
using namespace std;
int n,m,k,t;
int a[200010],b[200010];
int main()
{
	while(~scanf("%d%d%d%d",&n,&m,&k,&t))
	{
		for(int i=0;i=b[i])
				{
					ans++;
					v--;	
				}
				j++;
			}
			if(j==n)	break;
		}
		printf("%d\n",ans);
	}
	return 0;
}




你可能感兴趣的:(贪心,Codeforces)