結果
| 問題 | 
                            No.1894 Delete AB
                             | 
                    
| コンテスト | |
| ユーザー | 
                             publfl
                         | 
                    
| 提出日時 | 2022-04-08 22:00:35 | 
| 言語 | C++14  (gcc 13.3.0 + boost 1.87.0)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 657 bytes | 
| コンパイル時間 | 351 ms | 
| コンパイル使用メモリ | 48,640 KB | 
| 実行使用メモリ | 5,248 KB | 
| 最終ジャッジ日時 | 2024-11-28 12:40:53 | 
| 合計ジャッジ時間 | 1,049 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge3 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 1 | 
| other | AC * 2 WA * 12 | 
ソースコード
#include <stdio.h>
#include <vector>
std::vector<char> V;
char x[200010];
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		int a;
		scanf("%d",&a);
		scanf("%s",x+1);
		
		for(int i=a;i>=1;i--)
		{
			if(x[i]=='A')
			{
				if(V.size()>0 && V.back()=='A')
				{
					if(V.size()>1 && V[V.size()-2]=='B')
					{
						V.pop_back();
						V.pop_back();
					}
				}
				
				if(V.size()>0 && V.back()=='B')
				{
					if(V.size()>1 && V[V.size()-2]=='B')
					{
						V.pop_back();
						goto u;
					}
				}
				V.push_back(x[i]);
				u:;
			}
			else V.push_back(x[i]);
		}
		while(!V.empty()) printf("%c",V.back()),V.pop_back();
		printf("\n");
	}
}
            
            
            
        
            
publfl