2015-06-28 5 views
1

Используя ссылкуОшибка выполнения на тесте 1 (Codeforces)

http://codeforces.com/problemset/problem/556/B

ниже код с помощью GNU C++ 11 компилятор и код работает нормально , но я не знаю, как это работает ?

#include<iostream> 
#include<conio.h> 
#include<windows.h> 
int test(long int n,long int number[]) 
{ 
    int flag=0; 
    for(int i=0;i<n;i++) 
    { 
     if(number[i+1]==number[i]+1) 
      flag++; 
    } 
    if(flag==n-1) 
     return 1; 
    else 
     return 0; 
} 
void rot_gears(long int n,long int number[]) 
{ 
    system("cls"); 
    int t; 
    for(long z=0;z<n*n;z++) 
    { 
     for(long i=0;i<n;i++) 
     { 
      if(i%2==0) 
      { 
       if(number[i]==n-1) 
       { 
        number[i]=0; 
       } 
       else 
        number[i]++; 
      } 
      else if(i%2!=0) 
      { 
       if(number[i]==0) 
        number[i]=n-1; 
       else 
        number[i]--; 
      } 
     } 
     t=test(n,number); 
     if(t==1) 
      break; 

     // output(n,number); 
     //cout<<"\n\n"; 
    } 
    if(t) 
     std::cout<<"YES"; 
    else 
     std::cout<<"NO"; 
} 
int main() 
{ 
    long int n,teeth,number[10000]; 
    std::cin>>n; 
    std::cin>>teeth; 
    for(long int i=n-1;i>=0;i--) 

    { 
     number[i]=teeth%10; 
     teeth/=10; 
    } 

    // output(n,number); 
    rot_gears(n,number); 
    return 0; 

} 
+0

это принадлежит на codereview.stackexchange.com –

ответ

1

Я считаю, что нет никакого способа, чтобы выполнить system("cls"); на машине судьи - просто удалить, что из кода.

Также вы выйдете за пределы здесь, когда i == n - 1:

for(int i=0;i<n;i++) 
{ 
    if(number[i+1]==number[i]+1) 
    //  ^^^^^ here 

Хотя технически не выходить за пределы массива, потому что n <= 1000, но в любом случае вы обращаетесь неинициализированный элемент массива.

+0

Итак, что мне с этим делать? –

+0

@ArpitJoshi О чем? –

+0

Итак, я удалил систему («cls») Теперь вместо того, чтобы давать мне ошибку времени выполнения, он говорит неправильный ответ: P Он работает правильно, когда я делаю это сам! Я не знаю, что происходит. –

Смежные вопросы