Football 南邮NOJ网络选拔赛2082

摘要:
第一行给出n(1<=10)和m(0<usingspacestd;sum=0;cha=x-y;q){sum+=3*m;sum+=q-m;}elseif(m>q){sum+=3*q;对于(inti=0;cnt;-a[i]){break;}否则{m+=a[i];和);第一行给出n(1<=n<=10)和m(0<


Football

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 246            测试通过 : 59 

题目描述

现在你是一名足球经理,你的队伍将参加“南邮杯”的比赛。然而你拥有预知未来的能力,你可以预见你的队伍接下来进行的n场比赛每场的进球数和失球数。每胜一场队伍可得3分,平一场可得1分,输一场得0分。然而“南邮杯”是有黑幕的,你通过砸钱现在可以买到m个进球,问现在如何安排这m个进球,可以使得队伍获得最大的积分,求出这个最大的积分。



输入

多样例输入。

第一行给出n(1<=n<=10)m(0<=m<=20)分别代表你队伍进行的比赛数以及队伍可买的进球数。

接下来n行,每行分别有两个数xy分别表示该场比赛在没有买进球的情况下你队伍的进球数和失球数。

输出

对于每个样例答案输出一行输出一个整数,表示通过买球的方式你的队伍可获得的最大积分。

样例输入

2 1
1 1
1 1
3 2
1 3
3 1
2 2
4 10
1 1
2 2
1 3
0 4

样例输出

4
6
12

#include<cstdio>
#include<stdlib.h>
#include<stdio.h>
#include<iostream>
using namespace std;
int comp(const void *a,const void *b)
{
    return *(int*)b-*(int*)a;
}
int main()
{
    int n,m;
    while(scanf("%d%d",&n,&m)==2)
    {
        int a[12],cha,x,y,cnt=0,q=0,sum=0;
        for(int i=0;i<n;i++)
        {
            scanf("%d%d",&x,&y);
            cha=x-y;
            if(cha>0)
            {
                sum+=3;
            }
            if(cha==0)
            {
                q++;
            }
            if(cha<0)
            {
                a[cnt++]=cha;
            }
        }
        if(cnt>0)
        {
             qsort(a,cnt,sizeof(int),comp);
        }
        if(m<q)
        {
            sum+=3*m;
            sum+=q-m;
            printf("%d
",sum);
        }
        if(m==q)
        {
            sum+=m*3;
            printf("%d
",sum);
        }
        else if(m>q)
        {
            sum+=3*q;
            m=m-q;
            for(int i=0;i<cnt;i++)
            {
                if(m<-a[i])
                {
                   break;
                }
                else
                {
                   m+=a[i];
                   if(m==0)
                   {
                       sum+=1;
                       break;
                   }
                   if(m==1)
                   {
                       sum+=3;
                       break;
                   }
                   if(m>1)
                   {
                      m--;
                      sum+=3;
                      continue;
                   }
                }
            }
            printf("%d
",sum);
        }
    }
}

过得也较为轻松,主要是if条件控制~

Football

时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte
总提交 : 246            测试通过 : 59 

题目描述

现在你是一名足球经理,你的队伍将参加“南邮杯”的比赛。然而你拥有预知未来的能力,你可以预见你的队伍接下来进行的n场比赛每场的进球数和失球数。每胜一场队伍可得3分,平一场可得1分,输一场得0分。然而“南邮杯”是有黑幕的,你通过砸钱现在可以买到m个进球,问现在如何安排这m个进球,可以使得队伍获得最大的积分,求出这个最大的积分。



输入

多样例输入。

第一行给出n(1<=n<=10)m(0<=m<=20)分别代表你队伍进行的比赛数以及队伍可买的进球数。

接下来n行,每行分别有两个数xy分别表示该场比赛在没有买进球的情况下你队伍的进球数和失球数。

输出

对于每个样例答案输出一行输出一个整数,表示通过买球的方式你的队伍可获得的最大积分。

样例输入

2 1
1 1
1 1
3 2
1 3
3 1
2 2
4 10
1 1
2 2
1 3
0 4

样例输出

4
6
12

题目来源

版权声明:本文为博主原创文章,未经博主允许不得转载。

免责声明:文章转载自《Football 南邮NOJ网络选拔赛2082》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇剖析供应链攻击的防范[linux常用命令]find下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java实现 LeetCode 805 数组的均值分割 (DFS+分析题)

805. 数组的均值分割 给定的整数数组 A ,我们要将 A数组 中的每个元素移动到 B数组 或者 C数组中。(B数组和C数组在开始的时候都为空) 返回true ,当且仅当在我们的完成这样的移动后,可使得B数组的平均值和C数组的平均值相等,并且B数组和C数组都不为空。 示例:输入:[1,2,3,4,5,6,7,8]输出: true解释: 我们可以将数组...

关于sum(int)报错:将expression转化为数据类型int时发生算术溢出错误

在SQL Server 中,某列的数据都在int范围之内,但是使用sum聚集函数求该列和的时候,出现“将expression转化为数据类型int时发生算术溢出错误”。 首先,我们先看看SQL Server 定义的数据类型的长度: bigint   数据类型存储从   -2^63   (-9223372036854775808)   到   2^63-1...

用友面试

技术面: 项目介绍 写代码: 1. 排序算法会哪些?写一个快排? 2. 字符串中的每一个单词进行反转? 3. 一个数组,求连续最大和? 思路: 根据sum判断,如果sum>0说明sum对于后面的求和有加成,所以加上sum;否则看sum当前的数哪一个大保留哪一个数; 然后,比较sum和Max的大小,如果sum>Max就把sum赋值给Max; 代码...

概率生成函数

part0 What is it ? 一类人为规定的函数 设 (f(i)) 为第 (i) 项的概率 那么设 (F(x)) 为 (f) 的生成函数 [F(x) = sum_{i geq 0} f(i) * x ^ i ] part1 一些性质 (1: F'(1) = E(x)) 假如第 (i) 项的值为 (i) 则这件事情的期望 (E) 为 [sum_...

winform 用户控件、 动态创建添加控件、timer控件、控件联动

用户控件: 相当于一个Panel 可以把多个控件放在里面 组合为一个控件,方便使用和布局。 动态创建添加控件 可以在一个大容器里一次性放入多个控件 例:根据文本框中输入的数字 给flowLayoutPanel1 添加多少个button public Form2(haoyou hao) { InitializeCom...

查看oracle是否正常、表空间 (AIX)

REF http://blog.itpub.net/23556054/viewspace-1115506/ =================================================================== 查看 oracle 数据库是否启动: 一、LINUX: 1、用  ps -ef|grep ora  查看,是否有...