Submission #1520989
Source Code Expand
#include "bits/stdc++.h" using namespace std; #define OUT(x) cerr << #x << " = " << x << endl; #define all(x) x.begin(), x.end() #define mp make_pair #define pii pair<int, int> #define piii pair<int, pair<int, int>> struct UnionFind { int n; vector<int> parent; vector<int> rank; vector<int> num; int find(int x) { if (parent[x] == x) return x; return parent[x] = find(parent[x]); } UnionFind(int n_) { n = n_; parent.resize(n); for (int i = 0; i < n; i ++) parent[i] = i; rank.assign(n, 0); num.assign(n, 1); } void unite(int x, int y) { if ((x = find(x)) != (y = find(y))) { if (rank[x] < rank[y]) { parent[x] = y; num[y] += num[x]; } else { parent[y] = x; if (rank[x] == rank[y]) rank[x] ++; num[x] += num[y]; } n --; } } bool same(int x, int y) { return find(x) == find(y); } int get() { return n; } int get(int x) { return num[find(x)]; } }; int main() { int n; cin >> n; string s, t; cin >> s >> t; UnionFind uf(36); long long ans = 1; for (int i = 0; i < n; i ++) { if ('0' <= s[i] && s[i] <= '9' && '0' <= t[i] && t[i] <= '9') { assert(s[i] == t[i]); } else if ('0' <= s[i] && s[i] <= '9' && 'A' <= t[i] && t[i] <= 'Z') { uf.unite(s[i] - '0' + 26, t[i] - 'A'); } else if ('A' <= s[i] && s[i] <= 'Z' && '0' <= t[i] && t[i] <= '9') { uf.unite(s[i] - 'A', t[i] - '0' + 26); } else { uf.unite(s[i] - 'A', t[i] - 'A'); } } vector<bool> determined(26, false); for (int i = 0; i < n; i ++) { if (('0' <= s[i] && s[i] <= '9') || ('0' <= t[i] && t[i] <= '9')) continue; bool found_number = false; for (int j = 0; j <= 9; j ++) { if (uf.same(s[i] - 'A', j + 26)) found_number = true; } if (found_number) continue; if (determined[s[i] - 'A'] || determined[t[i] - 'A']) continue; if (i == 0) ans *= 9; else ans *= 10; determined[s[i] - 'A'] = determined[t[i] - 'A'] = true; } cout << ans << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - 大事な数なのでZ回書きまLた。 |
User | KokiYmgch |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 2854 Byte |
Status | AC |
Exec Time | 1 ms |
Memory | 256 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 30 / 30 | 70 / 70 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | subtask0-sample01.txt, subtask0-sample02.txt, subtask0-sample03.txt |
Subtask1 | subtask0-sample01.txt, subtask0-sample02.txt, subtask0-sample03.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask1-16.txt, subtask1-17.txt, subtask1-18.txt, subtask1-19.txt, subtask1-20.txt, subtask1-21.txt, subtask1-22.txt, subtask1-23.txt, subtask1-24.txt, subtask1-25.txt, subtask1-26.txt |
Subtask2 | subtask0-sample01.txt, subtask0-sample02.txt, subtask0-sample03.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask1-16.txt, subtask1-17.txt, subtask1-18.txt, subtask1-19.txt, subtask1-20.txt, subtask1-21.txt, subtask1-22.txt, subtask1-23.txt, subtask1-24.txt, subtask1-25.txt, subtask1-26.txt, subtask2-01.txt, subtask2-02.txt, subtask2-03.txt, subtask2-04.txt, subtask2-05.txt, subtask2-06.txt, subtask2-07.txt, subtask2-08.txt, subtask2-09.txt, subtask2-10.txt, subtask2-11.txt, subtask2-12.txt, subtask2-13.txt, subtask2-14.txt, subtask2-15.txt, subtask2-16.txt, subtask2-17.txt, subtask2-18.txt, subtask2-19.txt, subtask2-20.txt, subtask2-21.txt, subtask2-22.txt, subtask2-23.txt, subtask2-24.txt, subtask2-25.txt, subtask2-26.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask0-sample01.txt | AC | 1 ms | 256 KB |
subtask0-sample02.txt | AC | 1 ms | 256 KB |
subtask0-sample03.txt | AC | 1 ms | 256 KB |
subtask1-01.txt | AC | 1 ms | 256 KB |
subtask1-02.txt | AC | 1 ms | 256 KB |
subtask1-03.txt | AC | 1 ms | 256 KB |
subtask1-04.txt | AC | 1 ms | 256 KB |
subtask1-05.txt | AC | 1 ms | 256 KB |
subtask1-06.txt | AC | 1 ms | 256 KB |
subtask1-07.txt | AC | 1 ms | 256 KB |
subtask1-08.txt | AC | 1 ms | 256 KB |
subtask1-09.txt | AC | 1 ms | 256 KB |
subtask1-10.txt | AC | 1 ms | 256 KB |
subtask1-11.txt | AC | 1 ms | 256 KB |
subtask1-12.txt | AC | 1 ms | 256 KB |
subtask1-13.txt | AC | 1 ms | 256 KB |
subtask1-14.txt | AC | 1 ms | 256 KB |
subtask1-15.txt | AC | 1 ms | 256 KB |
subtask1-16.txt | AC | 1 ms | 256 KB |
subtask1-17.txt | AC | 1 ms | 256 KB |
subtask1-18.txt | AC | 1 ms | 256 KB |
subtask1-19.txt | AC | 1 ms | 256 KB |
subtask1-20.txt | AC | 1 ms | 256 KB |
subtask1-21.txt | AC | 1 ms | 256 KB |
subtask1-22.txt | AC | 1 ms | 256 KB |
subtask1-23.txt | AC | 1 ms | 256 KB |
subtask1-24.txt | AC | 1 ms | 256 KB |
subtask1-25.txt | AC | 1 ms | 256 KB |
subtask1-26.txt | AC | 1 ms | 256 KB |
subtask2-01.txt | AC | 1 ms | 256 KB |
subtask2-02.txt | AC | 1 ms | 256 KB |
subtask2-03.txt | AC | 1 ms | 256 KB |
subtask2-04.txt | AC | 1 ms | 256 KB |
subtask2-05.txt | AC | 1 ms | 256 KB |
subtask2-06.txt | AC | 1 ms | 256 KB |
subtask2-07.txt | AC | 1 ms | 256 KB |
subtask2-08.txt | AC | 1 ms | 256 KB |
subtask2-09.txt | AC | 1 ms | 256 KB |
subtask2-10.txt | AC | 1 ms | 256 KB |
subtask2-11.txt | AC | 1 ms | 256 KB |
subtask2-12.txt | AC | 1 ms | 256 KB |
subtask2-13.txt | AC | 1 ms | 256 KB |
subtask2-14.txt | AC | 1 ms | 256 KB |
subtask2-15.txt | AC | 1 ms | 256 KB |
subtask2-16.txt | AC | 1 ms | 256 KB |
subtask2-17.txt | AC | 1 ms | 256 KB |
subtask2-18.txt | AC | 1 ms | 256 KB |
subtask2-19.txt | AC | 1 ms | 256 KB |
subtask2-20.txt | AC | 1 ms | 256 KB |
subtask2-21.txt | AC | 1 ms | 256 KB |
subtask2-22.txt | AC | 1 ms | 256 KB |
subtask2-23.txt | AC | 1 ms | 256 KB |
subtask2-24.txt | AC | 1 ms | 256 KB |
subtask2-25.txt | AC | 1 ms | 256 KB |
subtask2-26.txt | AC | 1 ms | 256 KB |