Submission #1842079


Source Code Expand

#include <iostream>
#include <array>
#include <map>
#include <algorithm>
#include <cmath>
#include <vector>
#include <fstream>
#include <string>
#include <random>
#include <queue>
#include <iomanip>
#include <functional>
#include <climits>

using namespace std;

using ll = long long int;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using vll = std::vector<ll>;
using vpll = std::vector<pll>;
using vpii = std::vector<pii>;
using vi = std::vector<int>;
using vvi = std::vector<vi>;
using vvpii = std::vector<vpii>;

const ll mod197 = 1000000007LL;
const ll INF = 200LL * 200 * 100000 + 10;

const double PI11 = 3.14159265359;


class union_find {
public:
	int par[100010] = {};
	int rank[100010] = {};

	void init(int n) {
		for (int i = 0; i < n; i++) {
			par[i] = i;
			rank[i] = 0;
		}
	}

	int find(int x) {
		if (par[x] == x) {
			return x;
		}
		else {
			return par[x] = find(par[x]);
		}
	}

	void unite(int x, int y) {
		x = find(x);
		y = find(y);

		if (x == y) return;

		if (rank[x] < rank[y]) {
			par[x] = y;
		}
		else {
			par[y] = x;
			if (rank[x] == rank[y]) rank[x] ++;
		}
	}

	bool same(int x, int y) {
		return find(x) == find(y);
	}

};

int main(void)
{
	//0-9 , 'A' - 'Z'

	union_find uf;
	uf.init(1000);

	int n;
	string strs[2];
	cin >> n;

	for (int i = 0; i < 2; i++) {
		cin >> strs[i];
	}

	for (int i = 0; i < n; i++) {
		uf.unite(strs[0][i],strs[1][i]);
	}

	bool not_zero = false;

	ll answer = 1;

	for (int i = 0; i < n; i++) {
		if (strs[0][i] >= '0' && strs[0][i] <= '9') {
			cerr << strs[0][i];
			if (strs[0][i] >= '1')
				not_zero = true;
		}
		else {
			if ([&]() {
				for (int j = 0; j < 10; j++) {
					if (uf.same(strs[0][i], j + '0')) {
						cerr << (char)(j + '0');
						return false;
					}
				}
				return true;
			}()) {
				if (uf.same(strs[0][i],1)) {
					cerr << '*';
				}
				else {
					cerr << '?';
					uf.unite(strs[0][i], 1);
					if (not_zero) {
						answer *= 10;
					}
					else {
						answer *= 9;
						not_zero = true;
					}
				}
			}
		}
	}

	cerr << endl;

	cout << answer << endl;

	return 0;
}

Submission Info

Submission Time
Task B - 大事な数なのでZ回書きまLた。
User nasatame
Language C++14 (GCC 5.4.1)
Score 30
Code Size 2224 Byte
Status WA
Exec Time 2 ms
Memory 1024 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 0 / 70
Status
AC × 3
AC × 29
AC × 52
WA × 3
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 2 ms 1024 KB
subtask0-sample02.txt AC 1 ms 1024 KB
subtask0-sample03.txt AC 2 ms 1024 KB
subtask1-01.txt AC 2 ms 1024 KB
subtask1-02.txt AC 2 ms 1024 KB
subtask1-03.txt AC 1 ms 1024 KB
subtask1-04.txt AC 2 ms 1024 KB
subtask1-05.txt AC 2 ms 1024 KB
subtask1-06.txt AC 2 ms 1024 KB
subtask1-07.txt AC 1 ms 1024 KB
subtask1-08.txt AC 1 ms 1024 KB
subtask1-09.txt AC 2 ms 1024 KB
subtask1-10.txt AC 2 ms 1024 KB
subtask1-11.txt AC 2 ms 1024 KB
subtask1-12.txt AC 1 ms 1024 KB
subtask1-13.txt AC 2 ms 1024 KB
subtask1-14.txt AC 2 ms 1024 KB
subtask1-15.txt AC 2 ms 1024 KB
subtask1-16.txt AC 2 ms 1024 KB
subtask1-17.txt AC 2 ms 1024 KB
subtask1-18.txt AC 2 ms 1024 KB
subtask1-19.txt AC 1 ms 1024 KB
subtask1-20.txt AC 2 ms 1024 KB
subtask1-21.txt AC 2 ms 1024 KB
subtask1-22.txt AC 2 ms 1024 KB
subtask1-23.txt AC 2 ms 1024 KB
subtask1-24.txt AC 2 ms 1024 KB
subtask1-25.txt AC 2 ms 1024 KB
subtask1-26.txt AC 2 ms 1024 KB
subtask2-01.txt WA 2 ms 1024 KB
subtask2-02.txt AC 2 ms 1024 KB
subtask2-03.txt AC 2 ms 1024 KB
subtask2-04.txt AC 2 ms 1024 KB
subtask2-05.txt AC 2 ms 1024 KB
subtask2-06.txt WA 2 ms 1024 KB
subtask2-07.txt AC 2 ms 1024 KB
subtask2-08.txt AC 1 ms 1024 KB
subtask2-09.txt AC 2 ms 1024 KB
subtask2-10.txt AC 2 ms 1024 KB
subtask2-11.txt AC 2 ms 1024 KB
subtask2-12.txt AC 2 ms 1024 KB
subtask2-13.txt AC 2 ms 1024 KB
subtask2-14.txt AC 2 ms 1024 KB
subtask2-15.txt AC 2 ms 1024 KB
subtask2-16.txt AC 2 ms 1024 KB
subtask2-17.txt AC 2 ms 1024 KB
subtask2-18.txt WA 2 ms 1024 KB
subtask2-19.txt AC 2 ms 1024 KB
subtask2-20.txt AC 2 ms 1024 KB
subtask2-21.txt AC 2 ms 1024 KB
subtask2-22.txt AC 2 ms 1024 KB
subtask2-23.txt AC 2 ms 1024 KB
subtask2-24.txt AC 2 ms 1024 KB
subtask2-25.txt AC 2 ms 1024 KB
subtask2-26.txt AC 2 ms 1024 KB