結果
| 問題 |
No.517 壊れたアクセサリー
|
| コンテスト | |
| ユーザー |
dnish
|
| 提出日時 | 2018-06-24 17:09:02 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 1,191 bytes |
| コンパイル時間 | 2,042 ms |
| コンパイル使用メモリ | 179,488 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-06-30 22:31:51 |
| 合計ジャッジ時間 | 2,713 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 15 |
ソースコード
#include "bits/stdc++.h"
#define REP(i,n,N) for(ll i=(n); i<(N); i++)
#define RREP(i,n,N) for(ll i=(N-1); i>=n; i--)
#define CK(n,a,b) ((a)<=(n)&&(n)<(b))
#define ALL(v) (v).begin(),(v).end()
#define p(s) cout<<(s)<<endl
#define p2(a,b) cout<<(a)<<" "<<(b)<<endl
#define v2(T) vector<vector<T>>
typedef long long ll;
using namespace std;
const ll inf=1e18;
const ll NODE_SIZE = 60;
int N, M;
map<char,char> mp;
int main(){
cin>>N;
vector<char> start;
int size=0;
REP(i,0,N){
string s;
cin>>s;
size+=s.size();
start.push_back(s[0]);
REP(j,0,s.size()-1){
mp[s[j]] = s[j+1];
}
}
cin>>M;
REP(i,0,M){
string s;
cin>>s;
start.push_back(s[0]);
REP(j,0,s.size()-1){
mp[s[j]] = s[j+1];
}
}
sort(ALL(start));
start.erase(unique(ALL(start)), start.end());
for(auto c:start){
string s;
char now = c;
s += now;
while(mp.find(now) != mp.end()){
now = mp[now];
s += now;
}
if(s.size()==size){
p(s);
return 0;
}
}
p(-1);
return 0;
}
dnish