PKU 1250 Tanning Salon

http://poj.org/problem?id=1250
n個のベッドがある日焼けサロンに人が来る。
それぞれの人は文字に対応しており、それぞれの人が来たり出たりする順番が与えられる。このとき、すでベッドが埋まっていれば人は使わずに出て行く。何人の人が出ていくかを答える問題。

最初意味の把握に手間取りました。PCKにありそうな感じの問題だと思いました。

main(){
  int n;
  while(cin>>n,n){
    string in;
    cin>>in;
    int ans=0;
    set<char> use,away;
    rep(i,in.size()){
      if(use.count(in[i]))use.erase(in[i]);
      else if(away.count(in[i]))continue;
      else{
	if(use.size()<n)use.insert(in[i]);
	else{
	  ++ans;
	  away.insert(in[i]);
	}
      }
    }
    if(ans)cout<<ans<<" customer(s) walked away."<<endl;
    else cout<<"All customers tanned successfully."<<endl;
  }
}