diff options
Diffstat (limited to 'contests/Round828/Round#828/A/main.cpp')
| -rwxr-xr-x | contests/Round828/Round#828/A/main.cpp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/contests/Round828/Round#828/A/main.cpp b/contests/Round828/Round#828/A/main.cpp new file mode 100755 index 0000000..62a742b --- /dev/null +++ b/contests/Round828/Round#828/A/main.cpp @@ -0,0 +1,39 @@ +#include<bits/stdc++.h> + +using namespace std; + +typedef long long ll; +typedef pair<int, int> ii; +typedef vector<ii> vii; +typedef vector<int> vi; + +#define INF 1000000000 + +string buildString(map<int, char> &mp, vi &v) { + string s = ""; + for (auto x : v) { + s.push_back(mp[x]); + } + return s; +} + +int main () { + ios_base::sync_with_stdio(false); + cin.tie(NULL); + int tt; + cin >> tt; + while(tt--) { + int n; + cin >> n; + vi v(n); + for (auto &x : v) cin >> x; + string s; + cin >> s; + map<int, char> mp; + for (int i = 0; i < n; i++) { + mp[v[i]] = s[i]; + } + // cerr << buildString(mp,v) << '\n'; + cout << (s == buildString(mp, v) ? "YES" : "NO") << '\n'; + } +} |
