2015-03-13 31 views
-3

ideone链接:https://ideone.com/hOBBMA 问题链接:http://www.spoj.com/problems/OFFSIDE/ 代码:为什么这个“他越位了!”(spoj)解决方案给我的WA?

enter code here 
#include <iostream> 
using namespace std; 

int main() { 
int n1,n2,i,j; 
while(1) 
{ 
    int count=0; 
    cin>>n1>>n2; 
    if(n1==0 && n2==0) 
     break; 
    else 
    { 
     int a[n1],d[n2]; 
     for(i=0;i<n1;i++) 
     { 
      cin>>a[i]; 
     } 
     for(i=0;i<n2;i++) 
     { 
      cin>>d[i]; 
     } 

     for(i=0;i<n1;i++) 
     { 
      for(j=0;j<n2;j++) 
      { 
       if(a[i]>d[j]) 
       { 
       count++; 
       } 
      } 
     } 
    } 
    if(count>=2) 
     cout<<"N"<<endl; 
    else 
     cout<<"Y"<<endl; 
} 
return 0; 

} 它给给定的测试用例正确的答案,但显然这是一个WA

+0

问题是......? – 4386427 2015-03-13 19:15:49

+0

“这是为什么”他越位了!“(spoj问题)解决方案给我的WA?” – BaherZ 2015-03-13 19:21:05

+0

有什么输入? N1? N2? WA? – 4386427 2015-03-13 19:25:34

回答

0

考虑这个输入;距离球门400米处有两名进攻球员,距离球门400米处也有两名捍卫者。你的代码会计算'0',即越位,而根据规则,攻击者都不是。

如果进攻球员比第二个对手更靠近对手的球门 ,那么他是越位的。 [这是不正确的任何袭击者在这种情况下,所以肯定不是越位]如果他是倒数第二个对手[水平。在这种情况下

一个球员是不是越位他们水平,使肯定不会越位]或者他是最后两个对手水平[而且这也是]。

2 2 
400 400 
400 400 
0 0 
相关问题