Submission #64339000
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
int N;
string S, T;
int rem = 0;
set<int> adj[26];
int deg[26];
int dfs(int v, vector<int>& sccNum, stack<int>& S, vector<vector<int>>& scc, vector<int>& ord, int& cnt) {
ord[v] = ++cnt; S.push(v);
int result = ord[v];
for (int u: adj[v]) {
if (ord[u] == -1) result = min(result, dfs(u, sccNum, S, scc, ord, cnt));
else if (sccNum[u] == -1) result = min(result, ord[u]);
}
if (result == ord[v]) {
vector<int> temp;
while (true) {
int t = S.top(); S.pop();
temp.push_back(t);
sccNum[t] = scc.size();
if (t == v) break;
}
sort(temp.begin(), temp.end());
scc.push_back(temp);
}
return result;
}
void getSCC(vector<vector<int>>& scc, vector<int>& sccNum) {
stack<int> S; vector<int> ord(26, -1); int cnt = -1;
for (int i = 0; i < 26; ++i) if (ord[i] == -1) dfs(i, sccNum, S, scc, ord, cnt);
}
void solve() {
cin >> N;
cin >> S >> T;
for (int i = 0; i < N; ++i) adj[S[i] - 'a'].insert(T[i] - 'a');
for (int i = 0; i < 26; ++i) for (auto j: adj[i]) ++deg[j];
for (int i = 0; i < 26; ++i) if (adj[i].size() > 1) {
cout << -1;
return;
}
for (int i = 0; i < 26; ++i) {
if (adj[i].empty()) ++rem;
}
vector<vector<int>> scc;
vector<int> sccNum(26, -1);
getSCC(scc, sccNum);
int ans = 0;
for (int i = 0; i < 26; ++i) if (!adj[i].empty() && *adj[i].begin() != i) ++ans;
for (auto g: scc) {
if (g.size() == 26) {
cout << -1;
return;
}
if (g.size() == 1) continue;
bool flag = false;
for (auto i: g) if (deg[i] != 1) flag = true;
if (!flag && rem == 0) {
cout << -1;
return;
}
++ans;
}
cout << ans;
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
solve();
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Replace |
| User | danielhO9 |
| Language | C++ 17 (gcc 12.2) |
| Score | 0 |
| Code Size | 1914 Byte |
| Status | WA |
| Exec Time | 4 ms |
| Memory | 3772 KiB |
Judge Result
| Set Name | Sample | All | ||||||
|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 0 / 500 | ||||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 02_random2_00.txt, 02_random2_01.txt, 02_random2_02.txt, 02_random2_03.txt, 02_random2_04.txt, 02_random2_05.txt, 02_random2_06.txt, 02_random2_07.txt, 02_random2_08.txt, 02_random2_09.txt, 02_random2_10.txt, 02_random2_11.txt, 02_random2_12.txt, 02_random2_13.txt, 02_random2_14.txt, 02_random2_15.txt, 02_random2_16.txt, 02_random2_17.txt, 02_random2_18.txt, 02_random2_19.txt, 02_random2_20.txt, 02_random2_21.txt, 02_random2_22.txt, 02_random2_23.txt, 02_random2_24.txt, 02_random2_25.txt, 02_random2_26.txt, 02_random2_27.txt, 02_random2_28.txt, 02_random2_29.txt, 02_random2_30.txt, 02_random2_31.txt, 02_random2_32.txt, 02_random2_33.txt, 02_random2_34.txt, 02_random2_35.txt, 02_random2_36.txt, 02_random2_37.txt, 02_random2_38.txt, 02_random2_39.txt, 02_random2_40.txt, 02_random2_41.txt, 02_random2_42.txt, 02_random2_43.txt, 02_random2_44.txt, 02_random2_45.txt, 02_random2_46.txt, 02_random2_47.txt, 02_random2_48.txt, 02_random2_49.txt, 02_random2_50.txt, 02_random2_51.txt, 02_random2_52.txt, 02_random2_53.txt, 02_random2_54.txt, 02_random2_55.txt, 02_random2_56.txt, 02_random2_57.txt, 02_random2_58.txt, 02_random2_59.txt, 02_random2_60.txt, 02_random2_61.txt, 02_random2_62.txt, 02_random2_63.txt, 02_random2_64.txt, 02_random2_65.txt, 03_random3_00.txt, 03_random3_01.txt, 03_random3_02.txt, 04_handmade_00.txt, 04_handmade_01.txt, 04_handmade_02.txt, 04_handmade_03.txt, 04_handmade_04.txt, 04_handmade_05.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3580 KiB |
| 00_sample_01.txt | AC | 1 ms | 3484 KiB |
| 00_sample_02.txt | AC | 1 ms | 3480 KiB |
| 00_sample_03.txt | AC | 1 ms | 3516 KiB |
| 01_random_00.txt | AC | 3 ms | 3744 KiB |
| 01_random_01.txt | AC | 4 ms | 3724 KiB |
| 01_random_02.txt | AC | 2 ms | 3692 KiB |
| 01_random_03.txt | AC | 1 ms | 3700 KiB |
| 01_random_04.txt | AC | 1 ms | 3620 KiB |
| 01_random_05.txt | AC | 1 ms | 3604 KiB |
| 01_random_06.txt | AC | 2 ms | 3592 KiB |
| 01_random_07.txt | AC | 2 ms | 3624 KiB |
| 02_random2_00.txt | AC | 2 ms | 3696 KiB |
| 02_random2_01.txt | AC | 2 ms | 3772 KiB |
| 02_random2_02.txt | AC | 2 ms | 3652 KiB |
| 02_random2_03.txt | AC | 2 ms | 3660 KiB |
| 02_random2_04.txt | AC | 2 ms | 3664 KiB |
| 02_random2_05.txt | AC | 2 ms | 3624 KiB |
| 02_random2_06.txt | AC | 2 ms | 3612 KiB |
| 02_random2_07.txt | AC | 2 ms | 3672 KiB |
| 02_random2_08.txt | AC | 2 ms | 3544 KiB |
| 02_random2_09.txt | AC | 2 ms | 3700 KiB |
| 02_random2_10.txt | AC | 2 ms | 3624 KiB |
| 02_random2_11.txt | AC | 2 ms | 3680 KiB |
| 02_random2_12.txt | AC | 2 ms | 3660 KiB |
| 02_random2_13.txt | AC | 2 ms | 3644 KiB |
| 02_random2_14.txt | AC | 2 ms | 3704 KiB |
| 02_random2_15.txt | AC | 2 ms | 3672 KiB |
| 02_random2_16.txt | AC | 2 ms | 3652 KiB |
| 02_random2_17.txt | AC | 2 ms | 3636 KiB |
| 02_random2_18.txt | WA | 2 ms | 3648 KiB |
| 02_random2_19.txt | AC | 2 ms | 3580 KiB |
| 02_random2_20.txt | WA | 2 ms | 3704 KiB |
| 02_random2_21.txt | AC | 2 ms | 3640 KiB |
| 02_random2_22.txt | AC | 2 ms | 3768 KiB |
| 02_random2_23.txt | AC | 2 ms | 3684 KiB |
| 02_random2_24.txt | AC | 2 ms | 3672 KiB |
| 02_random2_25.txt | AC | 2 ms | 3628 KiB |
| 02_random2_26.txt | AC | 2 ms | 3692 KiB |
| 02_random2_27.txt | AC | 2 ms | 3684 KiB |
| 02_random2_28.txt | AC | 2 ms | 3756 KiB |
| 02_random2_29.txt | AC | 2 ms | 3652 KiB |
| 02_random2_30.txt | WA | 2 ms | 3616 KiB |
| 02_random2_31.txt | WA | 2 ms | 3680 KiB |
| 02_random2_32.txt | WA | 2 ms | 3672 KiB |
| 02_random2_33.txt | WA | 2 ms | 3716 KiB |
| 02_random2_34.txt | WA | 2 ms | 3764 KiB |
| 02_random2_35.txt | WA | 2 ms | 3700 KiB |
| 02_random2_36.txt | WA | 2 ms | 3684 KiB |
| 02_random2_37.txt | WA | 2 ms | 3536 KiB |
| 02_random2_38.txt | WA | 2 ms | 3756 KiB |
| 02_random2_39.txt | WA | 2 ms | 3760 KiB |
| 02_random2_40.txt | WA | 2 ms | 3680 KiB |
| 02_random2_41.txt | WA | 2 ms | 3608 KiB |
| 02_random2_42.txt | WA | 2 ms | 3688 KiB |
| 02_random2_43.txt | WA | 2 ms | 3544 KiB |
| 02_random2_44.txt | WA | 2 ms | 3768 KiB |
| 02_random2_45.txt | WA | 2 ms | 3580 KiB |
| 02_random2_46.txt | WA | 2 ms | 3652 KiB |
| 02_random2_47.txt | WA | 2 ms | 3772 KiB |
| 02_random2_48.txt | WA | 2 ms | 3688 KiB |
| 02_random2_49.txt | WA | 2 ms | 3644 KiB |
| 02_random2_50.txt | WA | 2 ms | 3684 KiB |
| 02_random2_51.txt | WA | 2 ms | 3652 KiB |
| 02_random2_52.txt | WA | 2 ms | 3724 KiB |
| 02_random2_53.txt | WA | 2 ms | 3624 KiB |
| 02_random2_54.txt | WA | 2 ms | 3668 KiB |
| 02_random2_55.txt | WA | 2 ms | 3724 KiB |
| 02_random2_56.txt | WA | 2 ms | 3672 KiB |
| 02_random2_57.txt | WA | 2 ms | 3724 KiB |
| 02_random2_58.txt | WA | 2 ms | 3644 KiB |
| 02_random2_59.txt | WA | 2 ms | 3536 KiB |
| 02_random2_60.txt | WA | 2 ms | 3700 KiB |
| 02_random2_61.txt | WA | 2 ms | 3700 KiB |
| 02_random2_62.txt | WA | 2 ms | 3580 KiB |
| 02_random2_63.txt | WA | 2 ms | 3680 KiB |
| 02_random2_64.txt | WA | 2 ms | 3684 KiB |
| 02_random2_65.txt | WA | 2 ms | 3764 KiB |
| 03_random3_00.txt | AC | 2 ms | 3680 KiB |
| 03_random3_01.txt | AC | 2 ms | 3696 KiB |
| 03_random3_02.txt | AC | 2 ms | 3584 KiB |
| 04_handmade_00.txt | AC | 2 ms | 3612 KiB |
| 04_handmade_01.txt | AC | 1 ms | 3508 KiB |
| 04_handmade_02.txt | AC | 1 ms | 3496 KiB |
| 04_handmade_03.txt | AC | 2 ms | 3656 KiB |
| 04_handmade_04.txt | AC | 2 ms | 3584 KiB |
| 04_handmade_05.txt | AC | 2 ms | 3648 KiB |