⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 2405.cpp

📁 这是哈尔滨工业大学acmOJ的源代码
💻 CPP
字号:
/* This Code is Submitted by wywcgs for Problem 2405 on 2006-10-25 at 21:52:46 */
#include <cstdio>
#include <algorithm>
using namespace std;

const int N = 128;

bool sgn(int k) { return k == 0 ? 0 : 1; }
bool frid(int*, int*);
bool neib(char*, int*, char*, int*);

int main()
{
	char str1[N], str2[N];
	int T;
	
	//freopen("d.in", "r", stdin);
	scanf("%d", &T);
	for(int t = 0; t < T; t++) {
		scanf("%s %s", str1, str2);
		int n1[10] = { 0 }, n2[10] = { 0 };
		for(int i = 0; str1[i] != 0; i++) n1[str1[i]-'0']++;
		for(int i = 0; str2[i] != 0; i++) n2[str2[i]-'0']++;
		if(frid(n1, n2)) printf("friends\n");
		else if(neib(str1, n1, str2, n2) || neib(str2, n2, str1, n1)) printf("almost friends\n");
		else printf("nothing\n");
	}
	
	return 0;
}

bool frid(int* n1, int* n2)
{
	for(int i = 0; i < 10; i++)
		if(sgn(n1[i]) != sgn(n2[i])) return false;
	return true;
}
bool neib(char* str1, int* n1, char* str2, int* n2)
{
	for(int i = 1; str1[i] != 0; i++) {
		if(str1[i-1] != '0' && str1[i] != '9' && (i != 1 || str1[i-1] != '1')) {
			n1[str1[i-1]-'0']--; n1[str1[i]-'0']--;
			n1[str1[i-1]-'0'-1]++; n1[str1[i]-'0'+1]++;
			if(frid(n1, n2)) return true;
			n1[str1[i-1]-'0']++; n1[str1[i]-'0']++;
			n1[str1[i-1]-'0'-1]--; n1[str1[i]-'0'+1]--;
		}
		if(str1[i-1] != '9' && str1[i] != '0') {
			n1[str1[i-1]-'0']--; n1[str1[i]-'0']--;
			n1[str1[i-1]-'0'+1]++; n1[str1[i]-'0'-1]++;
			if(frid(n1, n2)) return true;
			n1[str1[i-1]-'0']++; n1[str1[i]-'0']++;
			n1[str1[i-1]-'0'+1]--; n1[str1[i]-'0'-1]--;
		}
	}
	return false;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -