Codeforces 1355 C. Count Triangles
程序员文章站
2022-07-15 16:08:37
...
题意:
给你四个数 ,求有多少个三边为 的三角形。
枚举 ,然后判断有多少步满足的,最后减去就是吗,满足的。
具体看代码吧,就是细节需要注意。
AC代码:
int a, b, c, d;
ll ans;
int main()
{
int t;
sdd(a, b);
sdd(c, d);
ans = 0;
rep(x, a, b)
{
int ymin = c - x;
int zmin = c;
if (ymin > b)
ans += 1ll * (ymin - b) * (d - c + 1);
else
{
ymin = b;
zmin = b + x;
}
if (zmin > d)
continue;
int cy = c - ymin + 1;
int cz = d - zmin + 1;
if (cy >= cz)
ans += 1ll * (1 + cz) * cz / 2;
else
ans += 1ll * (cz + cz - cy + 1) * cy / 2;
}
ans = 1ll * (b - a + 1) * (c - b + 1) * (d - c + 1) - ans;
pld(ans);
return 0;
}