読者です 読者をやめる 読者になる 読者になる

紙媒体で管理するとなくなりがちなのでブログで進捗などを管理することにしました
※殆どの記事は自分自身のためだけにかいています.他人に見せられるレベルには至っていません...

ABC035_B

文字列のカウント

string str = "a1a2a3a4a5a6";
int cnt = count(str.begin(),str.end(),'a');//6
#include <bits/stdc++.h>
using namespace std;

struct Initializer {
  Initializer() {
    cin.tie(0);
    ios::sync_with_stdio(0);
    cout << fixed << setprecision(15);
  }
} initializer;

int main()
{
    string s;
    int t;//t==1 max, t==2 min
    int x=0,y=0;
    int ans=0;
    cin>>s>>t;
    int cnt = count(s.begin(),s.end(),'?');
    for(int i=0;i<s.size();i++){
        switch(s[i]){
            case 'U':y++;break;
            case 'D':y--;break;
            case 'L':x--;break;
            case 'R':x++;break;
        }
    }
    if(t==1){//max
        ans = abs(x)+abs(y)+cnt;
    }else{//min
        for(int i=0;i<cnt;i++){
            if(!(x==0 && y==0)){//原点以外
                if(x>0)x--;
                else if(x<0)x++;
                else if(y>0)y--;
                else if(y<0)y++;
            }else{//原点
                x++;
            }
        }
        ans = abs(x)+abs(y);
    }
    cout<<ans<<endl;
    return 0;
}