zoukankan      html  css  js  c++  java
  • ARC 098 C

    Problem Statement

    There are N people standing in a row from west to east. Each person is facing east or west. The directions of the people is given as a string S of length N. The i-th person from the west is facing east if Si= E, and west if Si= W.

    You will appoint one of the N people as the leader, then command the rest of them to face in the direction of the leader. Here, we do not care which direction the leader is facing.

    The people in the row hate to change their directions, so you would like to select the leader so that the number of people who have to change their directions is minimized. Find the minimum number of people who have to change their directions.

    Constraints

    • 2≤N≤3×105
    • |S|=N
    • Si is E or W.

    Input

    Input is given from Standard Input in the following format:

    N
    S
    

    Output

    Print the minimum number of people who have to change their directions.

    Sample Input 1

    5
    WEEWW
    

    Sample Output 1

    1
    

    Assume that we appoint the third person from the west as the leader. Then, the first person from the west needs to face east and has to turn around. The other people do not need to change their directions, so the number of people who have to change their directions is 1 in this case. It is not possible to have 0 people who have to change their directions, so the answer is 1.

    Sample Input 2

    12
    WEWEWEEEWWWE
    

    Sample Output 2

    4
    

    Sample Input 3

    8
    WWWWWEEE
    

    Sample Output 3

    3

    模拟题

    #include<cstring>
    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    #include<algorithm>
    #include<ctime>
    #define ll long long
    using namespace std;
    const int maxn=300005;
    
    int n,qz[maxn],tot,ans=1<<30;
    char s[maxn];
    
    int main(){
    	scanf("%d",&n),scanf("%s",s+1);
    	for(int i=1;i<=n;i++) qz[i]=qz[i-1]+(s[i]=='E');
    	tot=qz[n];
    	for(int i=1;i<=n;i++) ans=min(ans,(i-1-qz[i-1])+(tot-qz[i]));
    	cout<<ans<<endl;
    	return 0;
    }
    

      

     
  • 相关阅读:
    知社 —— 第 4 次站立式会议(04-28)
    知社 —— 第 3 次站立式会议(04-27)
    知社 —— 第 2 次站立式会议(04-26)
    知社 —— 第 1 次站立式会议(04-25)
    团队代码规范、冲刺任务与计划
    团队作业第四次 — 项目系统设计与数据库设计
    团队作业第三次 — 项目需求分析
    第01组 Alpha冲刺(5/6)
    2019 SDN上机第4次作业
    2019 SDN阅读作业
  • 原文地址:https://www.cnblogs.com/JYYHH/p/9095319.html
Copyright © 2011-2022 走看看