当前位置:网站首页>Lie cow count (spring daily question 53)

Lie cow count (spring daily question 53)

2022-07-07 16:40:00 sweetheart7-7

cow Bessie Hiding somewhere on the number axis .

Farmer John's N N N Each of the cows has a message to share : The first i i i Said the cow Bessie Hide below or equal to p i p_i pi A location of , Or say Bessie Hide at greater than or equal to p i p_i pi A location of .

Unfortunately , There may be no hiding place, which is consistent with the answers of all cows , This means that not all cows are telling the truth .

Calculate the minimum number of cows lying .

Input format
The first line of input contains N N N.

following N N N Lines each line contains characters L or G, This is followed by an integer p i p_i pi.L It means the first one i i i Said the cow Bessie The hiding position of is less than or equal to p i p_i pi, and G It means the first one i i i Said the cow Bessie The hiding position of is greater than or equal to p i p_i pi.

Output format
Output the minimum number of cows lying .

Data range
1 ≤ N ≤ 1000 1≤N≤1000 1N1000,
0 ≤ p i ≤ 1 0 9 0≤pi≤10^9 0pi109.

sample input 1:

2
G 3
L 5

sample output 1:

0

Examples 1 explain
It's possible that no cow is lying .

sample input 2:

2
G 3
L 2

sample output 2:

1

Examples 2 explain
At least one cow is lying .


//  Enumerate each endpoint , The number of lying cows is equal to that on the left  L  The sum of the  +  Dexter  G  The sum of the 
// Bessie  The influence of the middle of the endpoint and the endpoint on the answer is the same 
#include<iostream>
#include<algorithm>

#define x first
#define y second

using namespace std;

const int N = 1010;

int n;
pair<int, char> q[N];
int s[N];

int main(){
    
    
    cin >> n;
    
    for(int i = 1; i <= n; i++) cin >> q[i].y >> q[i].x;
    
    sort(q + 1, q + 1 + n);
    
    for(int i = 1; i <= n; i++){
    
        s[i] = s[i - 1];
        if(q[i].y == 'L') s[i]++;
    }
    
    
    
    int res = n;
    for(int i = n, r = 0; i; i--){
    
        
        int j = i, t = 0;
        while(j && q[j].x == q[i].x){
    
            if(q[j].y == 'G') t++;
            j--;
        }
        
        res = min(res, s[j] + r);
        r += t;
        i = j + 1;
    }
    
    cout << res << endl;
    
    return 0;
}
原网站

版权声明
本文为[sweetheart7-7]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207071427525809.html