zoukankan      html  css  js  c++  java
  • sicily 1636. show me the money

    Description
    Fakosh like playing the game "StarCraft".  However, he is not so good at this game that he can't beat the AI. For victory, he typed "show me the money" to cheat, and then he would get some money in the game. Now he can build more powerful cannons and make more strong soldiers with the money. But maybe the money is not enough, so he wants to know the amount of the money left.

    Input
    The first line of the input is an integer T, the number of test cases.
    In each test case, the first line is the money M(1<=M<=1000) that Fakosh would get after he typed "show me the money", and N(1<=N<=5), the number of kinds of the cannons or soldiers he would like to make. Each of the next N lines will contain two integers Ai(1<=Ai<=100) and Bi(1<=Bi<=5). Ai is the price of the cannon or soldier, Bi is the number of the cannon or soldier of this kind he would like to make.

    Output
    For each test case, if the money is not enough, output "Not enough", or else output the amount of the money left, in one line.

    这个题目简直充满槽点………………就算没玩过星际争霸只要玩过即时战略的都不会陌生,捶地

    题目本身很水,不过输入有点多看起来有点混乱,注释如下

    (不够的话其实再输一次秘技不就行了嘛哦呵呵呵呵呵呵)

    一次AC

    View Code
     1 #include<stdio.h>
     2 #define MAX 5
     3 
     4 int left( int cheat, int kind, const int price[], const int num[] );
     5 
     6 int main()
     7 {
     8     int t;
     9     int m, n;
    10     int a[MAX] = {0};
    11     int b[MAX] = {0};
    12     int i, j;
    13     int money;
    14     
    15     scanf( "%d", &t );
    16     
    17     for ( i = 0; i < t; i++ )
    18     {
    19         scanf( "%d %d", &m, &n );
    20         
    21         for ( j = 0; j < n; j++ )
    22         {
    23             scanf( "%d %d", &a[j], &b[j]);
    24         }
    25         
    26         money = left( m, n, a, b );
    27         
    28         if ( money == -1 )
    29         {
    30             printf( "Not enough\n" );
    31         }
    32         else
    33         {
    34             printf( "%d\n", money );
    35         }
    36     }
    37     
    38     return 0;
    39 }
    40 
    41 int left( int cheat, int kind, const int price[], const int num[] )
    42 {
    43     int i;
    44     
    45     for ( i = 0; i < kind; i++ )
    46     {
    47         cheat -= price[i] * num[i];
    48         
    49         if ( cheat < 0 )
    50         {
    51             return -1;
    52         }
    53     }
    54     
    55     return cheat;
    56 }
  • 相关阅读:
    CodeForces 19D Points (线段树+set)
    FZU 2105 Digits Count
    HDU 5618 Jam's problem again(三维偏序,CDQ分治,树状数组,线段树)
    HDU 5634 Rikka with Phi (线段树)
    Java实现 蓝桥杯 算法提高 转圈游戏(暴力快速幂)
    Java实现 蓝桥杯 算法提高 转圈游戏(暴力快速幂)
    Java实现 蓝桥杯 算法提高 转圈游戏(暴力快速幂)
    Java实现 蓝桥杯 算法提高VIP Substrings(暴力)
    Java实现 蓝桥杯 算法提高VIP Substrings(暴力)
    Java实现 蓝桥杯 算法提高VIP Substrings(暴力)
  • 原文地址:https://www.cnblogs.com/joyeecheung/p/2798574.html
Copyright © 2011-2022 走看看