1 solutions
-
0
C++ :
#include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> using namespace std; int n,k; int map[12][12]={0}; int head=1; int tail=1; int num; int f[10001]; void bfs() { bool flag[9]; head=1; tail=1; memset(f,0,sizeof(f)); for(int i=1;i<=9;++i) { flag[i]=0; } f[head]=num; flag[num]=1; while(head<=tail) { for(int i=1;i<=9;++i) { if(map[f[head]][i]==1&&flag[i]==0) { ++tail; f[tail]=i; flag[i]=1; } } head++; } return; } int main() { //freopen("build.in","r",stdin); //freopen("build.out","w",stdout); cin>>n>>k; int x,y; for(int i=1;i<=k;++i) { cin>>x>>y; map[x][y]=1; } int ans[15]; for(int i=1;i<=9;++i) { ans[i]=1; } for(num=0;num<=9;++num) { bfs(); ans[num]=tail; } unsigned long long sum=1; int c; while(n!=0) { c=n%10; sum=sum*ans[c]; n=n/10; } cout<<sum; return 0; }
- 1
Information
- ID
- 17970
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By