csp——第21次CCF计算机软件能力认证

T1:

#include<iostream>
using  namespace std;

int n;
int  si;
int wi;
int res = 0;

int main()
{
    cin>>n;
    for(int i=0;i  < n;i++){
        cin>>si>>wi;
        res  += si * wi;
    }    
    if(res  < 0 ) res  = 0;
    cout<<res<<endl;

    return 0;
}

T2:

#include<bits/stdc++.h>
#include <iostream>
#include<cstring>
#include <algorithm>
using  namespace std;

const int maxn = 100005;
int m;
int sum = 0;
int idx = 0;
int cnt[maxn];
typedef struct node{
    long long  y;
    int  r;
}p;
p a[maxn];

bool cmp(p n1, p n2){
    
    if(n1.y == n2.y)
        return  n1.r <= n2.r;
    else
         return n1.y <= n2.y;
}

int main()
{
    cin>>m;
    for (int i=0 ; i  < m ;i++){
        cin >> a[i].y>> a[i].r;
      }    
    sort(a,a+m,cmp);  
    cnt[0] = a[0].r;
    for(int i = 1;i< m;i++){
            cnt[i] = cnt[i-1]+a[i].r;
      }

      sum = cnt[m-1];
      idx = 0;
      for(int i=1;i<m;i++)
    {  
         if(a[i].y == a[i-1].y) continue;
         
         int j = i;
         while(a[j].y== a[i].y){
                j++;
         }
         //tmp = cnt[m-1]-cnt[i-1] + i - cnt[i-1] 
         if(sum <=  (cnt[m-1]-cnt[i-1] + i - cnt[i-1]) )
            {//kao lv hcong fu zhi!!!

                sum = cnt[m-1]-cnt[i-1] + i - cnt[i-1] ;
                idx = i;
            }
            i  = j-1;
    } 
    //        1  2 3 4 5 
 // cnt[m-1]-cnt[i-1] +    i -  cnt[i-1]
 // sum = max(sum,cnt[m-1]);
 //   a[i].r  ==>  max    >=i 1  + < i 0
 //sum =   cnt[m-1]-cnt[i-1] + i - cnt[i-1]
    /*
    if(sum < cnt[m-1]){
        idx = 0;
    }*/
    cout<<a[idx].y;
    return 0;
}

  

原文地址:https://www.cnblogs.com/liuzhuan-xingyun/p/14148501.html