522 - Schedule Problem

All about problems in Volume 5. If there is a thread about your problem, please use it. If not, create one with its number in the subject.

Moderator: Board moderators

Post Reply
killerwife
New poster
Posts: 11
Joined: Tue Jan 28, 2014 2:16 am

522 - Schedule Problem

Post by killerwife »

Code: Select all

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

typedef struct
{
    int time;
    int start;
}event;

int main()
{
    int events,rulen,done;
    int i,k;
    int temp;
    int rules[100000][3];
    /*int **rules;*/
    event *array;
    k=1;
    while((temp=fgetc(stdin))!=EOF&&(temp!='\n'))
    {
        ungetc(temp,stdin);
        scanf("%d",&events);
        array=(event*) malloc(sizeof(event)*events);
        /*rules=(int**) malloc(sizeof(int*)*events);
        i=0;
        while(i<events)
        {
            rules[i]=(int*)malloc(sizeof(int)*3);
            i++;
        }*/
        i=0;
        while(i<events)
        {
            scanf("%d",&array[i].time);
            i++;
        }
        i=0;
        while(1)
        {
           fgetc(stdin);
           temp=fgetc(stdin);
           if(temp=='#')
           {
               break;
           }
           else
           {
               fgetc(stdin);
               if(temp=='F')
               {
                   temp=fgetc(stdin);
                   if(temp=='F')
                   {
                       rules[i][0]=0;
                   }
                   else
                   {
                       rules[i][0]=1;
                   }
               }
               else
               {
                   temp=fgetc(stdin);
                   if(temp=='F')
                   {
                       rules[i][0]=2;
                   }
                   else
                   {
                       rules[i][0]=3;
                   }
               }
           }
           scanf("%d%d",&rules[i][1],&rules[i][2]);
           rules[i][1]--;
           rules[i][2]--;
           i++;
        }
        temp=fgetc(stdin);
        rulen=i;
        i=0;
        while(i<rulen)
        {
            array[rules[i][2]].start=-1;
            i++;
        }
        i=0;
        while(i<events)
        {
            if(array[i].start!=-1)
            {
                array[i].start=0;
            }
            i++;
        }
        i=0;
        done=0;
        while(done!=rulen)
        {
            while(i<rulen)
            {
                if((rules[i][0]!=4)&&(array[rules[i][1]].start!=-1))
                {
                    break;
                }
                i++;
            }
            if(i==rulen)
            {
               printf("Case %d:\nimpossible\n\n",k);
               break;
            }
            else
            {
                switch(rules[i][0])
                {
                case 0 : array[rules[i][2]].start=array[rules[i][1]].start+array[rules[i][1]].time-array[rules[i][2]].time;break;
                case 1 : array[rules[i][2]].start=array[rules[i][1]].start-array[rules[i][2]].time;break;
                case 2 : array[rules[i][2]].start=array[rules[i][1]].start+array[rules[i][1]].time;break;
                case 3 : array[rules[i][2]].start=array[rules[i][1]].start;break;
                }
                rules[i][0]=4;
            }
            i=0;
            done++;
        }
        if(i<rulen)
        {
            printf("Case %d:\n",k);
            while(i<events)
            {
                printf("%d %d\n",i+1,array[i].start);
                i++;
            }
            printf("\n");
        }
        k++;
       /* free(rules);*/
    free(array);
    }

    return 0;
}
I always get a runtime error, while with the test subjects it runs fine. Why? I even tried allocating muuch muuuch more memory to prevent segfault.
brianfry713
Guru
Posts: 5947
Joined: Thu Sep 01, 2011 9:09 am
Location: San Jose, CA, USA

Re: 522 Schedule problem

Post by brianfry713 »

http://uva.onlinejudge.org/index.php?op ... category=7
522 has a red check so the judge doesn't have I/O for it and you can't get AC.
Check input and AC output for thousands of problems on uDebug!
killerwife
New poster
Posts: 11
Joined: Tue Jan 28, 2014 2:16 am

Re: 522 Schedule problem

Post by killerwife »

Didnt know. Thx for the reply :)
Post Reply

Return to “Volume 5 (500-599)”