#8880: 請問 SE 的可能原因


dibery (Bor)

學校 : 政治大學
編號 : 23441
來源 : [119.14.19.119]
最後登入時間 :
2016-04-07 01:20:18
c105. 00270 - Lining Up -- UVa270 | From: [140.119.232.8] | 發表日期 : 2014-06-18 17:05

解題的同好們大家好

我在解這一題的時候一直 SE

想請問可能是什麼問題

丟上 UVa 是對的

但不知道這裡是發生了什麼問題

在此來向大家請教了

以下是 code

#include<cstdio>
#include<cstdlib>
#include<climits>
using namespace std;

int max( int a, int b ) { return a > b? a : b; }
int solve( int* x, int* y, int begin, int end, int size )
{
    int mx = x[ begin ] - x[ end ], my = y[ begin ] - y[ end ], all = 2;
    for( int i = end+1; i < size; ++i )
    {
        int dx = x[ begin ] - x[ i ], dy = y[ begin ] - y[ i ];
        if( dx * my == dy * mx )
            ++all;
    }
    return all;
}

int main()
{
    int n, x[ 700 ], y[ 700 ];
    char str[ 30 ];
    scanf( "%d\n", &n );

    while( n-- )
    {
        int ans = 0, size = 0;

        while( gets( str ) && *str )
            sscanf( str, "%d %d", x+size, y+size ), size++;
        for( int i = 0; i < size; ++i )
            for( int j = i+1; j < size; ++j )
                ans = max( ans, solve( x, y, i, j, size ) );
        printf( "%d%s\n", ans, n? "\n" : "" );
    }
}
 

 
ZeroJudge Forum