hrbusrt 1900 权限问题

权限问题
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 507(230 users) Total Accepted: 226(202 users) Rating: Special Judge: No
Description
对于一个文件来说总是会涉及到一些权限问题,这里我们将问题简化一下,认为权限是面向对于所有用户的一个限制。如果用户对这个文件有读的权限,那么将获得一个权限数字4,如果用户对这个文件有写的权限则将获得一个权限数字2,如果有执行权限那么将获得一个权限数字1,用户不具有任何权限那么权限数字为0,一个用户拥有这个文件的权限值是他拥有的所有权限数字的加和。一个文件对于用户的初始权限值为0,现在想要知道经过一些列的操作之后用户对这个文件拥有的权限值是多少。
Input
本题只有一组输入数据,输入处理到文件结束。add代表要加入的权限,后面跟一个指定的字母:a, r, w或者x中的一个字母,del代表删除的权限,后面同样跟着一个指定的字母:a, r, w或者x中的一个字母。a代表所有的权限,r代表读的权限,w代表写的权限,x代表执行的权限。show命令表示要输出用户拥有当前文件的权限值。
Output
对于每次输出,输出对应的权限值并换行
Sample Input
add a

show

del r

del x

show

Sample Output
7

2

Hint
你不能重复计算用户的某个权限
Author
杨和禹

#include<stdio.h>
int main()
{
    int x,y,mid;
    int n;
    while(~scanf("%d",&n))
    {
        for(int a=6;a<=n;a++)
        {
            for(int b=2;b<=a;b++)
            {
                for(int c=b;c<=a;c++)
                {
                    x=a;
                    y=c;
                    while(x>=y)
                    {
                        mid=(x+y)/2;
                         if(a*a*a>b*b*b+c*c*c+mid*mid*mid)
                            y=mid+1;
                         else  if(a*a*a<b*b*b+c*c*c+mid*mid*mid)
                         {
                             x=mid-1;
                         }
                        else {
                            printf("%d^3 = %d^3 + %d^3 + %d^3\n",a,b,c,mid);
                            break;
                        }
                    }
                }
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值