为什么这个"他越位了!"(spoj)解决方案给我的WA?

时间:2015-03-13 19:08:59

标签: c++

ideone链接:https://ideone.com/hOBBMA 问题链接:http://www.spoj.com/problems/OFFSIDE/ 代码:

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

1 个答案:

答案 0 :(得分:0)

考虑这个输入;距目标400米处的两名攻击者和距目标400米处的两名防守队员。您的代码将被计为“0”即越位,而根据规则,攻击者都没有。

  

如果一名进攻球员更接近对手的进球,他就越位了   线路比第二个最后的对手。 [对于这种情况下的任何攻击者都不是这样,所以绝对不是越位]

     

如果一个玩家与第二个最后一个对手保持同一水平,则该玩家不会越位[在这种情况下他们 级别所以肯定不会越位]或者他与最后一个级别相同两个对手[这也是如此]。

2 2
400 400
400 400
0 0