zoukankan      html  css  js  c++  java
  • 美术展览

    #2348. 「JOI 2018 Final」美术展览

    内存限制:256 MiB时间限制:1000 ms标准输入输出
    题目类型:传统评测方式:文本比较
    上传者: 匿名

    题目描述

    JOI 国将举行美术展,在美术展中将展出来自全国各地的各种美术品。

    现在有  件候选美术品,编号为  至 。每件艺术品有描述其尺寸与价值的两个整数,第  件艺术品的尺寸为 ,其价值为 

    美术展至少有一件美术品被选中并展示,并且举办美术展的展览馆足够大,所以展出所有的  件美术品也是可行的。为了符合 JOI 国人民的审美,我们想使得参展的美术品之间的尺寸之差不能太大。并且,我们想使得参展的美术品价值之和尽量大。因此,我们决定按照以下方式选定参展的美术品:

    在参展美术品中,令  为所选美术品中最大的尺寸, 为所选美术品中最小的尺寸。令  为所有参展美术品的总价值之和。给出候选美术品的数量以及其尺寸与价值,求  的最大值。

    输入格式

    从标准输入中读取数据。

    第一行包括一个整数 ,表示有  件候选美术品。

    接下来  行,第  行给出两个整数 ,表示第  件美术品的尺寸与价值。

    输出格式

    输出数据到标准输出中。

    输出一行一个整数,表示  的最大值。

    样例

    样例输入 1
    3
    2 3
    11 2
    4 5
    
    样例输出 1
    6
    
    #include <bits/stdc++.h>
    #include<map>
    #include<set>
    using namespace std;
    const int maxn=1e6;
    typedef long long ll;
    int n;
    pair<ll,int>cur[maxn];
    int main() {
        cin>>n;
        for(int i=1;i<=n;i++)scanf("%lld%d",&cur[i].first,&cur[i].second);
        ll ans=0,pre=-0x3f3f3f3f,psum=0;
        sort(cur+1,cur+1+n);
        for(int i=1;i<=n;i++){
            pre=max(pre,-psum+cur[i].first);
            psum+=cur[i].second;
            ans=max(ans,pre+psum-cur[i].first);
        }
        cout<<ans<<endl;
        return 0;
    }
  • 相关阅读:
    SQL中常用的数据类型及简介
    静态方法与非静态方法
    遍历多维数组
    遍历一个三维数组
    冒泡排序-方法2
    关于二分查找分
    冒泡排列-——方法1
    AngularJS 循环查询数组
    AngularJs 指令
    给定一个年月值,返回上个年月值,格式为:YYYY.MM string类型
  • 原文地址:https://www.cnblogs.com/czy-power/p/10612338.html
Copyright © 2011-2022 走看看