zoukankan      html  css  js  c++  java
  • 电费结算(electric)

    Description

    WZK最近靠租房发家致富了。作为WZK老同学的你也要租房,于是WZK决定不要房租,但是电费还得付。以下是用电价格:
    在这里插入图片描述

    举个例子吧。如果你用电为10123千瓦时,那么要付2 * 100 + 3 * 9900 + 5 * 123 = 30515块钱(好贵)。
    
    到结算电费的日子了,可是WZK家里只有一个总电表,也就是统计你和WZK总共用的电量。但是WZK有办法告诉你以下信息:
    
    1).如果按照总电表来看要交给供电局的钱A。(也就是两个人用电量加起来一起算钱)
    
    2).你和WZK如果分开付的话,你们付的钱的差值B。
    
    现在你想知道如果你单独算钱的话,需要付多少钱。当然,你的用电量不会比WZK多。
    
    举个例子:如果你们一起算钱要付1100,并且如果分开来算,你们的差值是300的话,那么你用了150kwh,WZK用了250kwh。让我们来验算一下:你们一共用电400kwh,所以要付2 * 100 + 3 * 300 = 1100,你单独要付2 * 100 + 3 * 50 = 350,WZK单独要付2 * 100 + 3 * 150 = 650。所以最后,你只需要告诉我你单独要付350元。
    

    Input

    输入仅一行,包含两个整数A和B(1 ≤ A, B ≤ 10^9),含义同上。 输出描述: 输出仅一行一个整数,代表你单独算需要付的钱。数据保证解唯一。

    Output

    输出仅一行一个整数,代表你单独算需要付的钱。数据保证解唯一。

    Sample Input

    1100 300

    Sample Output

    350

    Data Constraint

    Hint

    20%的数据,A和B都不超过10^6。
    
    100%的数据,1 ≤ A, B ≤ 10^9。
    

    .
    .
    .
    .
    .
    .
    分析
    先看懂是如何收费的,根据A反算出总电费
    再二分出答案计算检验

    .
    .
    .
    .
    .
    程序:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int b,df=0;
    
    int js(int x)
    {
    	int w=0,a=x,p=2;
    	if (x>100) 
    	{
    		w+=2*100;a-=100;p=3;
    	}
    	if (x>10000)
    	{
    		w+=3*9900;a-=9900;p=5;
    	}
    	if (x>1000000)
    	{
    		w+=5*990000;a-=990000;p=7;
    	}
    	w+=a*p;
    	return w;
    }
    
    int ef(int l,int r)
    {
    	while (l<=r)
    	{
    		int mid=(l+r)/2;
    		int a1=js(mid),b1=js(df-mid);
    		if (a1-b1==b) return b1; else
    		if (a1-b1<b) l=mid+1; else 
    		if (a1-b1>b) r=mid-1;
    	}
    	
    }
    
    int main()
    {
    	int a;
    	scanf("%d%d",&a,&b);
    	int p=2;
    	if (a>2*100) 
    	{
    		df+=100;a-=200;p=3;
    	}
    	if (a>3*9900)
    	{
    		df+=9900;a-=3*9900;p=5;
    	}
    	if (a>5*990000)
    	{
    		df+=990000;a-=5*990000;p=7;
    	}
    	df+=a/p;
    	int ans;
    	ans=ef(0,df);
    	printf("%d",ans);
    	return 0;
    }
    
  • 相关阅读:
    oracle聚合函数及行专列,pivot rollup cube
    oracle expdp导入时 提示“ORA-39002: 操作无效 ORA-39070: 无法打开日志文件 ”
    PL/SQL 美化器不能解析文本
    PL/SQL TOAD 不安装Oracle客户端连接数据库的方法
    oracle 某一字段取反
    jqgrid 加按钮列
    扩展方法 DataTable的ToList<T>
    jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding
    jquery ajax调用WCF,采用System.ServiceModel.WSHttpBinding协议
    学习WCF笔记之二
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/11094943.html
Copyright © 2011-2022 走看看