标签:暴力
6 4815 2 1 5716 1 0 7842 1 0 4901 0 0 8585 3 3 8555 3 2 2 4815 0 0 2999 3 3 0
3585 Not sure
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <cmath> #define L(x) (x<<1) #define R(x) (x<<1|1) #define MID(x,y) ((x+y)>>1) using namespace std; #define N 20005 struct stud{ int v,x,y; }f[N]; int vis[11]; void fddd(int sum) { for(int i=0;i<11;i++) vis[i]=0; vis[sum%10]++; vis[sum/10%10]++; vis[sum/100%10]++; vis[sum/1000]++; } int n; int fdd(int sum) { int i,j; for(i=0;i<n;i++) { int x,y; x=y=0; fddd(sum); int temp=f[i].v; if(vis[temp%10]) {x++;vis[temp%10]--;} if(vis[temp/10%10]){x++;vis[temp/10%10]--;} if(vis[temp/100%10]) {x++;vis[temp/100%10]--;} if(vis[temp/1000]) {x++;vis[temp/1000]--;} if(sum%10==temp%10) y++; if(sum/10%10==temp/10%10) y++; if(sum/100%10==temp/100%10) y++; if(sum/1000==temp/1000) y++; if(x!=f[i].x||y!=f[i].y) { return 0; } } return 1; } int main() { int i,j,k,s; while(scanf("%d",&n),n) { for(i=0;i<n;i++) scanf("%d%d%d",&f[i].v,&f[i].x,&f[i].y); int ans=0; int num=0; for(i=1;i<10;i++) for(j=0;j<10;j++) for(k=0;k<10;k++) for(s=0;s<10;s++) { if(fdd(i*1000+j*100+k*10+s)) { ans=i*1000+j*100+k*10+s; num++; } if(num>1) goto ende; } ende: if(num==1) printf("%d\n",ans); else printf("Not sure\n"); } return 0; }
标签:暴力
原文地址:http://blog.csdn.net/u014737310/article/details/40959113