为了测试stl
30分的暴力写法。。。

#include <bits/stdc++.h>
using namespace std;
const int maxn = 11;
int n;
char plus1[maxn], plus2[maxn], answer[maxn];
int ans[maxn];
//---------------
bool ok() {
	int tmp[maxn];
	for (int i = n-1; i >= 0; --i)
	{
		tmp[i] = ans[plus1[i] - 'A']+ ans[plus2[i] - 'A'];
	}
	for (int i = n-1; i >= 0; --i)
	{
		if(tmp[i] >= n) {
			tmp[i - 1] += tmp[i] / n;
			tmp[i] %= n;
		}
	}
	for (int i = 0; i < n; ++i)
	{
		if(tmp[i] != ans[answer[i]-'A']) return false;
	}
	return true;
}
//---------------
int main() {
	cin >> n;
	for(int i = 0; i < n; i++) cin >> plus1[i];
	for(int i = 0; i < n; i++) cin >> plus2[i];
	for(int i = 0; i < n; i++) cin >> answer[i];
	for (int i = 0; i < n; ++i)
	{
		ans[i] = i;
	}
	sort(ans, ans+n);
	do{
		if(ok()) break;	
	} while(next_permutation(ans, ans+n));
	for (int i = 0; i < n; ++i)
	{
		cout << ans[i] << ' ';
	}
	return 0;
}

相关文章:

  • 2021-09-18
  • 2021-09-27
  • 2021-10-21
  • 2022-12-23
  • 2022-01-05
  • 2021-11-07
  • 2021-08-06
  • 2022-12-23
猜你喜欢
  • 2022-01-02
  • 2022-01-01
  • 2021-06-27
  • 2021-06-08
  • 2021-05-16
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案