結果
| 問題 |
No.205 マージして辞書順最小
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-07-01 09:48:50 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,004 bytes |
| コンパイル時間 | 903 ms |
| コンパイル使用メモリ | 64,568 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-10-12 00:01:12 |
| 合計ジャッジ時間 | 2,881 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 6 RE * 9 |
ソースコード
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
int n;
cin>>n;
string s,t;
vector<string> v;
for(int i=0; i<n; ++i){
cin>>s;
v.push_back(s);
}
char c;
c='{';
int p;
p=v.size();
int f;
f=0;
while(1){
vector<int> vp;
f=0;
for(int i=0; i<v.size(); ++i){
char a;
a=v[i][0];
if(a<c && a!='\0'){
c=a;
p=i;
vp.clear();
vp.push_back(p);
} else if(a==c && a!='\0'){
p=i;
vp.push_back(p);
}
if(v[i].size()==0) f++;
}
if(f==v.size()) break;
t.push_back(c);
if(vp.size()>1){
char cp;
cp='{';
int pp;
pp=vp.size();
for(int i=0; i<vp.size(); ++i){
int vvps;
vvps=v[vp[i]].size();
char ap;
if(vvps>1){
ap=v[vp[i]][1];
if(ap<cp && ap!='\0'){
cp=ap;
pp=vp[i];
}
}
}
p=pp;
}
v[p].erase(v[p].begin());
c='{';
p=v.size();
}
cout<<t<<endl;
return 0;
}