Fork me on GitHub

SCAU 10691 ACM 光环

10691 ACM 光环

时间限制:1000MS  内存限制:65535K 提交次数:0 通过次数:0

题型: 编程题   语言: 无限制

Description

话说XCC 经常要打比赛,要知道,ACM界流传着一个经典的定理 , 那就是rp守恒~因此 XCC 赛前总不忘去膜拜一下
无所不能的Qing教主 ,大赛前大Orz~小赛前小Orz~ 以求可以爆 rp ~~~~然而,要爆rp是要出现 
ac 光环的,传说中的ac 光环是圆的(如下图);
而损rp 也会出现光环,那就是wa 光环。。。。正方形的(如下图)。


之所以要 rp 守恒是指 ac 光环和 wa 光环要相交,因为两个光环差不多大,
所以此处不考虑它们一方完全包含另一方的情况。如果它们相交了,则 rp 守恒;
否则, ac 光环会因为能量过大导致 rp 溢出。。。。后果嘛,就像int 溢出那样,
rp 迅速负无穷大~~然后 XCC这次比赛就要吃蛋蛋了 T_T , 当然咯,acm是看实力的,以上就当开个玩笑,这道题很简单,给你一个圆和正方形,判断它们是否能让rp守恒就好了。
 

Input

第一行是六个数字,为wa光环与二维坐标轴平行时的左上顶点,左下顶点和右下顶点。
第二行是三个数字,为ac 光环的圆心和半径。

Output

当rp 守恒时,输出 “rp balanced.”,否则 ,输出“Oh no~”。
所有数值都在区间 [-1000,1000] 内

Sample Input

5  5  5  3  7  3
1  0  1

Sample Output

Oh no~

Hint

如果刚好只相交了一个点的话,没让rp守恒哦~

Source

scau_acm

Provider

scau_acm

 

复制代码
#include<stdio.h>
int main()
{
    int x1, y1, x2, y2, x3, y3, x4, y4, x, y, r, flag = 0;
    scanf("%d%d%d%d%d%d%d%d%d", &x1, &y1, &x2, &y2, &x3, &y3, &x, &y, &r);
    x4 = x3, y4 = y1;
    if(x2 <= x && x <= x3 && y2-r < y && y < y1 + r) flag = 1;
    else if(y2 <= y && y <= y1 && x1-r < x && x < x3 + r) flag = 1;
    else
    {
        if(x1 - x < r && y - y1 < r && (x-x1)*(x-x1) + (y-y1)*(y-y1) < r*r) flag = 1;
        if(x2 - x < r && y2 - y < r && (x-x2)*(x-x2) + (y-y2)*(y-y2) < r*r) flag = 1;
        if(x - x3 < r && y3 - y < r && (x-x3)*(x-x3) + (y3-y)*(y3-y) < r*r) flag = 1;
        if(x - x4 < r && y - y4 < r && (x-x4)*(x-x4) + (y-y4)*(y-y4) < r*r) flag = 1;
    }
    if(flag) printf("rp balanced.\n");
    else printf("Oh no~\n");
    return 0;
}
复制代码

 

解题思路:

1y 画一个图表示就什么都清楚了。当圆的圆心落在外围黑圆矩形所围成的区域(不包括外围黑框)时, 圆和矩形就能够相交,其中四周四个小矩形(长和宽长度差异大

两个1/4夹住)的宽为圆的半径。

posted @   Gifur  阅读(1029)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
TOP
点击右上角即可分享
微信分享提示