📄 3956776_ac_0ms_220k.cpp
字号:
#include <stdio.h>
#include <string.h>
#include <math.h>
struct node
{
double pos;
int y, g, r;
int tot;
}l[10];
int main()
{
int n, i, j;
int m[100];
double v;
double t;
int cas = 1;
while (scanf("%d", &n) == 1 && n != -1)
{
printf("Case %d: ", cas++);
memset(m, 0, sizeof(m));
for (i = 0; i < n; i++)
{
scanf("%lf%d%d%d", &l[i].pos, &l[i].g, &l[i].y, &l[i].r);
l[i].tot = l[i].g + l[i].y + l[i].r;
}
int yes = 0;
for (v = 30; v < 61; v += 1.0)
{
for (i = 0; i < n; i++)
{
t = l[i].pos / v * 3600;
while (t >= l[i].tot)
{
t -= l[i].tot;
}
if (t > l[i].g + l[i].y && fabs(t - l[i].tot) > 1e-8)
break;
}
if(i == n)
{
yes = 1;
m[(int)v] = 1;
}
}
if (!yes)
puts("No acceptable speeds.");
else
{
for (i = 30; i < 61; i++)
{
if (m[i] == 1)
{
printf("%d", i);
j = i + 1;
while (j < 61 && m[j] == 1)
j++;
if (j != i + 1)
printf("-%d", j - 1);
i = j;
for (j = i; j < 61; j++)
{
if (m[j] == 1)
{
printf(", ");
break;
}
}
}
}
puts("");
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -