coderforce 525A Vitaliy and Pie

题意: n个房间排成一排,每个房间里有一把钥匙,房间之间有门,大写字母代表门小写字母代表钥匙,对应的字母可以打开对应的门,从左到右,要从第一个房间到达地n个房间,问需要买几把钥匙(到达一个房间可以拿到其中的钥匙,钥匙只能使用一次,如果手中没有能打开这个门的钥匙可以购买)。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxm=1e6+10;
char s[maxm];
int a[30];
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        memset(a,0,sizeof(a));
        scanf("%s",s);
        int cnt=0;
        for(int i=0;i<2*n-2;i++)
        {
            if(i%2==0)
            {
                a[s[i]-'a']++;
            }
            else
            {
                if(a[s[i]-'A']==0)
                {
                    cnt++;
                }
                else
                {
                    a[s[i]-'A']--;
                }
            }
        }
        printf("%d\n",cnt);
    }
    return 0;
}

你可能感兴趣的:(coderforce 525A Vitaliy and Pie)