188.c

来自「平时acm训练时ac的源代码」· C语言 代码 · 共 71 行

C
71
字号
/*
188. Factory guard 
Accepted 66 ms 114 kb 
*/

#include <stdio.h>

int main()
{
	int N, T;
	int i, j, P[20], Ti[20], V[20];
	scanf("%d %d", &N, &T);
	for (i=0; i<N; i++)
	{
		scanf("%d", &P[i]);
		Ti[i] = 0;
	}
	for (i=0; i<N; i++)
	{
		scanf("%d", &V[i]);
	}
	for (i=0; i<N-1; i++)
	{
		for (j=i+1; j<N; j++)
		{
			if (V[i]>0 && V[j]<0)
			{
				if (P[j]>P[i])
				{
					if ((P[j]-P[i])<=(V[i]-V[j])*T)
					{
						Ti[i] += ((V[i]-V[j])*T-(P[j]-P[i]))/1000+1;
						Ti[j] += ((V[i]-V[j])*T-(P[j]-P[i]))/1000+1;
					}
				}
				else if (P[j]<P[i])
				{
					if ((1000-(P[i]-P[j]))<=(V[i]-V[j])*T)
					{
						Ti[i] += ((V[i]-V[j])*T-(1000-(P[i]-P[j])))/1000+1;
						Ti[j] += ((V[i]-V[j])*T-(1000-(P[i]-P[j])))/1000+1;
					}
				}
			}
			else if (V[i]<0 && V[j]>0)
			{
				if (P[j]>P[i])
				{
					if ((1000-(P[j]-P[i]))<=(V[j]-V[i])*T)
					{
						Ti[i] += ((V[j]-V[i])*T-(1000-(P[j]-P[i])))/1000+1;
						Ti[j] += ((V[j]-V[i])*T-(1000-(P[j]-P[i])))/1000+1;
					}
				}
				else if (P[j]<P[i])
				{
					if ((P[i]-P[j])<=(V[j]-V[i])*T)
					{
						Ti[i] += ((V[j]-V[i])*T-(P[i]-P[j]))/1000+1;
						Ti[j] += ((V[j]-V[i])*T-(P[i]-P[j]))/1000+1;
					}
				}
			}
		}
	}
	for (i=0; i<N; i++)
	{
		printf("%d ", Ti[i]);
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?