ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1019. Перекрашивание прямой

"Crash ACCESS_VIOLATION"
Послано GoGo 9 июл 2001 20:11
This is my source

#include <stdio.h>
#include <stdlib.h>

void main()
 {
  long x[2][5000],y[2][5000],i,j,max=0;
  int n,k,l,gasit,_1,_2,cur=1,sec=0;
  char ch,cul[2][5000];
  scanf("%d",&n);
  x[sec][0]=1;
  cul[sec][0]=' ';
  x[sec][1]=0;
  y[sec][1]=1000000000;
  cul[sec][1]='w';
  for(l=0;l<n;l++)
   {
    scanf("%ld",&i);
    scanf("%ld",&j);
    scanf("%c",&ch);
    scanf("%c",&ch);
    cul[cur][0]=' ';
    cul[sec][0]=' ';
    gasit=0;
    for(k=1;(k<=x[sec][0] && !gasit);k++)
     if(i>=x[sec][k] && i<y[sec][k])
      {
       gasit=1;
       _1=k;
      }
    gasit=0;
    for(k=1;(k<=x[sec][0] && !gasit);k++)
     if(j>x[sec][k] && j<=y[sec][k])
      {
       gasit=1;
       _2=k;
      }
    x[cur][0]=0;
    for(k=1;k<_1;k++)
     {
      x[cur][++x[cur][0]]=x[sec][k];
      y[cur][x[cur][0]]=y[sec][k];
      cul[cur][x[cur][0]]=cul[sec][k];
     }
    if(i>x[sec][_1])
     {
      x[cur][++x[cur][0]]=x[sec][_1];
      y[cur][x[cur][0]]=i;
      cul[cur][x[cur][0]]=cul[sec][_1];
     }
    x[cur][++x[cur][0]]=i;
    y[cur][x[cur][0]]=j;
    cul[cur][x[cur][0]]=ch;
    if(j<y[sec][_2])
     {
      x[cur][++x[cur][0]]=j;
      y[cur][x[cur][0]]=y[sec][_2];
      cul[cur][x[cur][0]]=cul[sec][_2];
     }
    for(k=_2+1;k<=x[sec][0];k++)
     {
      x[cur][++x[cur][0]]=x[sec][k];
      y[cur][x[cur][0]]=y[sec][k];
      cul[cur][x[cur][0]]=cul[sec][k];
     }
    x[sec][0]=1;
    x[sec][1]=x[cur][1];
    y[sec][1]=y[cur][1];
    cul[sec][1]=cul[cur][1];
    for(k=2;k<=x[cur][0];k++)
     if(cul[sec][x[sec][0]]==cul[cur][k])
      y[sec][x[sec][0]]=y[cur][k];
     else
      {
       x[sec][++x[sec][0]]=x[cur][k];
       y[sec][x[sec][0]]=y[cur][k];
       cul[sec][x[sec][0]]=cul[cur][k];
      }
   }
  for(k=1;k<=x[sec][0];k++)
   if(cul[sec][k]=='w' && y[sec][k]-x[sec][k]>max)
    {
     max=y[sec][k]-x[sec][k];
     i=x[sec][k];
     j=y[sec][k];
    }
  printf("%ld %ld",i,j);
 }
I got "Crash ACCESS_VIOLATION"