1.每一个仓库所有对应位置编码全比另一个大才算是上一层!!!!如-2,10跟6,8,6>-2但8<10所以后者不算前者的上一层!!!
2.输出的是第一个编号最小的,不是编码差值最小的!
#include <bits/stdc++.h> using namespace std; const int N=1005; int a[N][12]; int b[N][12];//用于比较 int main() { int n,m;cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>a[i][j]; b[i][j]=a[i][j]; } } //找最小差值 for(int i=1;i<=n;i++) { //判断是不是最大 int f1=0; for(int j=1;j<=n;j++) { int cnt=0; for(int k=1;k<=m;k++) { if(a[j][k]>a[i][k])//m个都要更大才算上一层!!!!!! { cnt++; } } if(cnt==m) { f1=1; } } if(f1==0) { cout<<0<<endl; } else { int j=1; while(j<=n) { int f=0; if(j!=i) { for(int k=1;k<=m;k++) { if(a[j][k]-a[i][k]<=0) { f=1; } } if(f==0) { cout<<j<<endl;break; } } j++; } } } return 0; }