Programming contests

50 Programming Exercise for Beginners

January 2, 2019 12:00 AM – December 31, 2019 12:00 AM

Hiking Trail

Consider the following header file:

myheader.h

  1. #ifndef _MYHEADER_H
  2. #define _MYHEADER_H 1
  3. int foo(char *, int);
  4. #endif /* myheader.h */
download as text file

Write the function foo() declared in myheader.h that takes a string and a nonnegative integer n as parameters. The string describes the current state of a hiking trail. In the string, '!' (exclamation mark) characters indicate the start, the finish, and the checkpoints of the trail, the lowercase letters of the English alphabet indicate the hikers performing the trail, and '.' (period) characters denote other parts of the route.

The function should return the number of sections where more than n hikers are staying.

Note

Place the function in file foo.c and submit this file as a solution to the evaluation system. You can test your solution using the following files. The evaluation system does not necessarily perform the evaluation using these files.

main.c

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "myheader.h"
  4. int main()
  5. {
  6.     char line[1000];
  7.     int n;
  8.     while (scanf("%s %d", line, &n) != EOF)
  9.         printf("%d\n", foo(line, n));
  10.     return EXIT_SUCCESS;
  11. }
download as text file

Makefile

  1. SRCS = main.c foo.c
  2. OBJS = $(SRCS:%.c=%.o)
  3. TARGETS = main
  4. .PHONY: clean
  5. all: $(TARGETS)
  6. main: $(OBJS)
  7. $(CC) $(OBJS) -o main
  8. %.o: %.c
  9. $(CC) -Wall -c $< -o $@
  10. clean:
  11. rm -rf $(OBJS) *~ $(TARGETS)
download as text file

Sample Input

  1. !.........! 1
  2. !...ab..c.!..d..e.!...! 1
  3. !...abcde..!....!.....!......!.......! 5
download as text file

Output for Sample Input

  1. 0
  2. 2
  3. 0
download as text file

One possible solution is available in: main.c.

Acknowledgement This work was supported by the construction EFOP-3.4.3-16-2016-00021. The project was supported by the European Union, co-financed by the European Social Fund.
University of Debrecen; Faculty of Informatics; v. 03/01/2019