代码如下```cpp
#include<bits/stdc++.h>
using namespace std;
int s[10];
set<int> a[10];
int m(int x,int y) {
int ans=1;
for(int i=1; i<=y; i++)
ans*=x;
return ans;
}
int shun1(int x,int y) {
int sum,num;
num=x%(m(10,y))/(m(10,y-1));
if(num+1<=9) sum=x+m(10,y);
else sum=x+9*m(10,y);
return sum;
}
int main() {
int n,x1,x2,x3,x4,x5;
cin>>n;
for(int i=1; i<=n; i++) {
cin>>x1>>x2>>x3>>x4>>x5;
s[i]=x1*10000+x2*1000+x3*100+x4*10+x5;
}
for(int i=1; i<=n; i++) {
for(int j=0; j<=4; j++) {
int tmp1;
tmp1=shun1(s[i],j);
a[i].insert(tmp1);
for(int q=2; q<=9; q++) {
tmp1=shun1(tmp1,j);
a[i].insert(tmp1);
}
}
for(int j=0; j<=3; j++) {
int tmp1;
tmp1=shun1(s[i],j);
tmp1=shun1(tmp1,j+1);
a[i].insert(tmp1);
for(int q=2; q<=9; q++) {
tmp1=shun1(tmp1,j);
tmp1=shun1(tmp1,j+1);
a[i].insert(tmp1);
}
}
}
if(n==1) cout<<a[1].size();
else {
for(int i=2; i<=n; i++) {
set<int>::iterator it;
it=a[i].begin();
for(; it!=a[i].end(); it++) {
if(a[i-1].find(*it)==a[i-1].end()) a[i].erase(it);
}
}
cout<<a[n].size();
}
return 0;
}