标签:
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 916 Accepted Submission(s): 261
1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<map> 5 #include<queue> 6 #include<stack> 7 #include<set> 8 using namespace std; 9 int t; 10 int a[10]; 11 int mp[10][10]; 12 map<int,int> mpp; 13 int jishu=0; 14 void init() 15 { 16 mp[1][3]=1; 17 mp[1][7]=1; 18 mp[1][9]=1; 19 mp[2][8]=1; 20 mp[3][1]=1; 21 mp[3][9]=1; 22 mp[3][7]=1; 23 mp[4][6]=1; 24 mp[6][4]=1; 25 mp[7][1]=1; 26 mp[7][9]=1; 27 mp[7][3]=1; 28 mp[8][2]=1; 29 mp[9][3]=1; 30 mp[9][7]=1; 31 mp[9][1]=1; 32 } 33 int main() 34 { 35 scanf("%d",&t); 36 37 init(); 38 for(int i=1;i<=t;i++) 39 { 40 scanf("%d",&jishu); 41 memset(a,0,sizeof(a)); 42 int maxn=0; 43 int flag=1; 44 for(int j=1;j<=jishu;j++) 45 { 46 scanf("%d",&a[j]); 47 if(a[j]>maxn) 48 maxn=a[j]; 49 if(a[j]<=0) 50 flag=0; 51 } 52 mpp.clear(); 53 if(jishu<4||jishu>9||maxn>9||flag==0) 54 printf("invalid\n"); 55 else 56 { int re=0; 57 mpp[a[1]]=1; 58 for(int j=1;j<jishu;j++) 59 { 60 if(mpp[a[j+1]]==0) 61 { 62 if(mp[a[j]][a[j+1]]==0) 63 re++; 64 else 65 { 66 if(mpp[(a[j]+a[j+1])/2]) 67 re++; 68 } 69 } 70 mpp[a[j+1]]=1; 71 72 } 73 if(re==jishu-1) 74 printf("valid\n"); 75 else 76 printf("invalid\n"); 77 } 78 } 79 return 0; 80 }
标签:
原文地址:http://www.cnblogs.com/hsd-/p/5271727.html