大佬们,为什么我的例子都没有输出正确?
#include<bits/stdc++.h> using namespace std; int n,step,ans[52]; char dir[52]; struct pos{ int x; int y; }cow[52]; int main() { cin>>n; memset(ans,-1,sizeof(ans)); for(int i=1;i<=n;i++){ cin>>dir[i]>>cow[i].x>>cow[i].y; } for(int i=1;i<=n;i++){ for(int j=i;j<=n;j++){ if(dir[i]==dir[j]){ if(dir[i]==69){ if(cow[i].y==cow[j].y && cow[i].x<cow[j].x){ if(ans[i]==-1) ans[i]=cow[j].x-cow[i].x; else ans[i]=min(cow[j].x-cow[i].x,ans[i]); } else if(cow[i].y==cow[j].y && cow[i].x>cow[j].x){ if(ans[i]==-1) ans[j]=cow[i].x-cow[j].x; else ans[j]=min(cow[i].x-cow[j].x,ans[j]); } } else if(dir[i]==78){ if(cow[i].x==cow[j].x && cow[i].y<cow[j].y){ if(ans[i]==-1) ans[i]=cow[j].y-cow[i].y; else ans[i]=min(cow[j].y-cow[i].y,ans[i]); } else if(cow[i].x==cow[j].x && cow[i].y>cow[j].y){ if(ans[j]==-1) ans[j]=cow[i].y-cow[j].y; else ans[j]=min(cow[i].y-cow[j].y,ans[j]); } } } else{ if(dir[i]==69 && dir[j]==78){ if(cow[i].x<=cow[j].x){ if((cow[i].y-cow[j].y)>(cow[j].x-cow[i].x)){ if(ans[j]==-1) ans[j]=cow[i].y-cow[j].y; else(ans[j]=min((cow[i].y-cow[j].y),ans[j])); } else if((cow[i].y-cow[j].y)<(cow[j].x-cow[i].x)){ if(ans[i]==-1) ans[i]=cow[j].x-cow[i].x; else ans[i]=min((cow[j].x-cow[i].x),ans[i]); } else if((cow[i].y-cow[j].y)==(cow[j].x-cow[i].x)) continue; } else continue; } else if(dir[i]==78 && dir[j]==69){ if(cow[j].x<=cow[i].x){ if((cow[j].y-cow[i].y)>(cow[i].x-cow[j].x)){ if(ans[i]==-1) ans[i]=cow[j].y-cow[i].y; else(ans[i]=min((cow[j].y-cow[i].y),ans[i])); } else if((cow[j].y-cow[i].y)<(cow[i].x-cow[j].x)){ if(ans[i]==-1) ans[j]=cow[i].x-cow[j].x; else ans[j]=min((cow[i].x-cow[j].x),ans[j]); } } else if((cow[j].y-cow[i].y)==(cow[j].x-cow[i].x)) continue; } else continue; } } } for(int i=1;i<=n;i++){ if(ans[i]!=-1) cout<<ans[i]<<endl; else cout<<"Infinity"<<endl; } return 0; }