ants.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char ants[200000];
int main(int argc, char **argv)
{
int count, dlzka;
// int pos, last, left, right;
int i,j;
int lastl, lastr;
int antstart;
char antdir;
int totall, totalr;
int lpl, lpr;
int timel, timer;
while (1) {
scanf("%d %d\n", &dlzka
, &count
); break;
memset(ants
, '.', sizeof(ants
)); ants[dlzka+1] = 0;
lastl = -1;
lastr = 1000000;
totall = 0;
totalr = 0;
timel = -1;
timer = -1;
for (i=0; i<count; i++) {
scanf("%d %c\n", &antstart
, &antdir
); ants[antstart] = antdir;
if (antdir == 'L' && antstart > lastl) {
lastl = antstart;
timel = lastl;
}
if (antdir == 'R' && antstart < lastr) {
lastr = antstart;
timer = dlzka - antstart;
}
if (antdir == 'L') totall++;
if (antdir == 'R') totalr++;
}
j = 0;
for (i=0; i<=dlzka; i++) {
if (ants[i] == 'L' || ants[i] == 'R')
j++;
if (j==totall) {
lpl = i;
break;
}
}
j = 0;
for (i=dlzka; i>=0; i--) {
if (ants[i] == 'L' || ants[i] == 'R')
j++;
if (j==totalr) {
lpr = i;
break;
}
}
//printf("%s\n %d %d %d %d\n %d %d\n%d %d\n", ants, lastl, lastr, totall, totalr, lpl, lpr, timel, timer);
printf("The last ant will fall down in %d seconds - started at ", (timer
>timel
)?timer
:timel
); if (timer > timel) {
}
if (timer < timel) {
}
if (timer==timel) {
printf("%d and %d.\n", lpl
, lpr
); }
}
return 0;
}