石の1159A A杭

 

石のA.のA杭

テストあたりの時間制限

1秒

テストごとのメモリ制限

256メガバイト

入力

標準入力

出力

標準出力

Vasyaは石のいくつかの番号で構成杭を、持っています。NN回彼はどちらかの山から一石を取ったり杭に一石を追加しました。山は山から一石を取って、各操作の前に非空でした。

あなたはVasyaが行ったnnの操作を与えられています。これらの操作を行った後、山にあることができる石の最小限の可能な数を検索します。

入力

Vasya(1≤n≤1001≤n≤100)によってなされた操作の数、 - 最初の行は一つの正の整数NNを含有します。

「 - 」、「+」(引用符なし)または(引用符なし)次の行は、に等しいNNシンボルからなる文字列SSを含んでいます。「 - 」Vasyaは、第IIオペレーション上の石を取った場合、シシィはに等しい(引用符なし)を添加した場合、シシィは、(引用符なし)「+」に等しいです。

出力

これらnnの操作の後の山にすることができ石の最小限の可能な数 - 1つの整数を印刷します。

入力

コピー

3 
---

出力

コピー

0

入力

コピー

4 
++++

出力

コピー

4

入力

コピー

2 
- +

出力

コピー

1

入力

コピー

5 
++ - ++

出力

コピー

3

注意

Vasyaが最初に山に33石を持っていた場合、最初の試験では、操作を行った後、石の数は、山の少ない数を持つことは不可能なので、答えは00ください予告である、ことを00に等しくなりますこの場合には、Vasyaは、いくつかの操作(杭が空になります)の上に石を取ることができなくなりますので、初めに石の数は、33よりも、小さくすることはできません。

第二の試験では、Vasya場合初めにパイル00の石を有し、操作を行った後石の数は、杭のより少ない数を有することは不可能である44に等しくなるために44回の操作に石の数を行った後44石の山が高くなります。だから、答えは44です。

Vasyaが最初に山に11の石を持っていた場合には第三の試験では、作った後の操作は、石の数は、操作を行った後、石のより少ない数を持つことは不可能であることを、証明することができる11に等しくなります。

第四の試験では、もしVasyaは、操作を行った後、石の数は、33に等しくなり、冒頭にパイル00の石を持っていました。

 

質問の意味:石の山を、あなたが追加したり、石の一部を奪うことができ、それが奪われた場合、石、十分な石があることを確認するために石のこの山は、あなたは何の石を追加することはできません。次に動作をn回、及び長さの文字列にN、+添加される - 低減され、後にn回操作した後、それは石岩ヒープの現在の数を出力します。

ソリューション:アナログ

パイソン:

n=int(input())
s=input()
ans=0
for i in s:
          if i=='+':ans+=1
          else:ans=max(ans-1,0)
print(ans)

C ++: 

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,ans=0;
    string s;
    cin>>n;
    cin>>s;
    for(int i=0; i<n; i++)
        if(s[i]=='+') ans++;
        else ans=ans>0?--ans:0;
    cout<<ans<<endl;
    return 0;
}

 

 

 

395元記事公開 ウォンの賞賛126 ビューに20万+を

おすすめ

転載: blog.csdn.net/memory_qianxiao/article/details/90240440