2012-04-13 3 views
0

곧 걸릴 Codility 테스트가 있습니다. INT 대신 LONG을 사용하여 EXTREME LARGE NUMBERS ERROR를 피하기 위해 코드에서 수정을 찾으려고했으나 작동하지 않았습니다.Codility extreme number 오류

아무도 CODILITY 데모 테스트를 사용하여 100 개를 얻었습니까?

이전 게시물을 살펴 보았지만이 특정 문제는 해결되지 않았습니다.

MY CODE : 복잡도 O (N)는 ... 아직 나는

// you can also use includes for example: 
// #include <algorithm> 
#include<iostream> 
#include<vector> 
#include<math.h> 

int equi (const vector<int> &A) { 
if((int)A.size()==0) 
    return -1; 

long int sum_l = A[0]; 
long int total_sum =0; 

for(int i =0; i<(int)A.size();i++){ 
    total_sum = total_sum + A[i]; 
    } 

    int flag =0; 
    total_sum = total_sum -A[0]; 

    if(total_sum == 0) 
     return 0; 

for(int i=1; i<(int)A.size()-1;i++){ 
    total_sum = total_sum - A[i]; 
    if(sum_l ==total_sum){ 
     flag=1; 
     return i; 
     } 
    sum_l= sum_l + A[i]; 
    } 
if(sum_l ==0) 
    return (int)A.size()-1; 

if(flag ==0) 
    return -1; 


} 
+0

Opps 방금 sum_l 및 total_sum에 오랫동안 노력했습니다! 그 오류가 해결되었습니다 !! – user1332212

+0

이 질문은 오타에 관한 것이기 때문에 주제와 관련이없는 것으로 보입니다. – bmargulies

답변

2

94 내가 long long을 사용 가지고, 나는 문제가되지 있었다.