Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
3018GiftHelp……我的code为什么过不了啊?还有什么问题没考虑到吗? #include<stdio.h> typedef struct { int a[1001]; }Box; Box b[501]; int r[1001]; void Choose(int n,int m) { int i=1,j,t,count=0,s,c; while(i<=n && count<(n-i+1)) { c=0; t=0; for(;i<=n;i++) { for(j=1;j<=m;j++) { if(b[i].a[j]<=r[j]) break; } if(j==m+1) { t=i; s=i; c++; if(count==0) count=1; break; } } if(t<n&&t>0) { i=t+1; while(i<=n) { for(j=1;j<=m;j++) { if(b[i].a[j]<=b[t].a[j]) break; } if(j==m+1) { c++; t=i; } i++; } if(count<c) count=c; i=s+1; } else break; } if(count==0) printf("Please look for another gift shop!\n"); else printf("%d\n",count); } void Sort1(int m) { int i,j; for(i=2;i<=m;++i) { if(r[i]<r[i-1]) { r[0]=r[i]; for(j=i-1;r[0]<r[j];--j) r[j+1]=r[j]; r[j+1]=r[0]; } } } void Sort2(int t,int m) { int i,j; for(i=2;i<=m;i++) { if(b[t].a[i]<b[t].a[i-1]) { b[t].a[0]=b[t].a[i]; for(j=i-1;b[t].a[0]<b[t].a[j];--j) b[t].a[j+1]=b[t].a[j]; b[t].a[j+1]=b[t].a[0]; } } } void Sort3(int n,int m) { int i,j; for(i=2;i<=n;i++) { if(b[i].a[1]<b[i-1].a[1]) { b[0]=b[i]; for(j=i-1;b[0].a[1]<b[j].a[1];--j) b[j+1]=b[j]; b[j+1]=b[0]; } } } int main() { int i,j,n,m; while((scanf("%d%d",&n,&m))!=EOF) { for(i=1;i<=m;i++) scanf("%d",&r[i]); Sort1(m); for(i=1;i<=n;i++) { for(j=1;j<=m;j++) scanf("%d",&b[i].a[j]); Sort2(i,m); } Sort3(n,m); Choose(n,m); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator