zoukankan      html  css  js  c++  java
  • CF912A

    题意

    你手里有 A 个黄水晶和 B 个蓝水晶,其中两个黄水晶可以造一个黄水晶球,三个蓝水晶可以造一个蓝水晶球,一黄一蓝两个水晶可以造一个绿水晶球。

    现在你需要 x 个黄水晶球,y 个绿水晶球,z 个蓝水晶球,问你总共还需要多少个水晶能满足要求。


    分析

    反向考虑,既然 黄水晶 * 2 = 黄水晶球,黄水晶 + 蓝水晶 = 绿水晶球,蓝水晶 * 3 = 蓝水晶球;

    那你总共需要的水晶数tot = x * 2 + y + z * 3 + y;

    但是并不能直接拿 tot 与 A+B 的大小进行比较,因为可能你黄水晶不够,但蓝水晶很多,导致 A+B >= tot 但是仍然需要水晶的情况发生,所以就需要单独判断;


    代码呐

    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <algorithm>
    #include <cstring>
    #define maxn 110
    #define maxm 500 
    
    using namespace std;
    
    long long a,b,x,y,z,ans;
    
    int main(){
    	cin>>a>>b>>x>>y>>z;
        if(x*2+y<=a &&z*3+y<=b){
        	cout<<0;
        	return 0;
        }
        if(x*2+y>a) ans+=x*2+y-a;
        if(z*3+y>b) ans+=z*3+y-b;
        cout<<ans;
    	return 0;
    }
    

    题解虽短但也用心,不喜勿喷,谢谢啦。

  • 相关阅读:
    IOS-JSON数据解析
    IOS-APP发布资料收集
    IOS-webService
    ASP.NET MVC学习之路:模板页
    io流
    线程
    事件监听
    java基础面试题
    递归调用
    三目运算: x?y:z
  • 原文地址:https://www.cnblogs.com/KnightL/p/13935322.html
Copyright © 2011-2022 走看看