Problem B Done. Added test input
This commit is contained in:
parent
9d7dbd6d16
commit
c35f37467f
2 changed files with 88 additions and 0 deletions
59
tourist.c
Normal file
59
tourist.c
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#define S_MAXSIZE 100
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
int num, i;
|
||||||
|
scanf("%d\n", &num);
|
||||||
|
|
||||||
|
for (i = 0; i < num; i++) {
|
||||||
|
int n, k;
|
||||||
|
long v;
|
||||||
|
scanf("%d %d %ld\n", &n, &k, &v);
|
||||||
|
int j;
|
||||||
|
|
||||||
|
long total_visited = k * (v - 1);
|
||||||
|
|
||||||
|
// offset is the number of attractions to skip
|
||||||
|
// before picking the most popular ones
|
||||||
|
int o = total_visited % n;
|
||||||
|
|
||||||
|
printf("Case #%d: ", i + 1);
|
||||||
|
|
||||||
|
char** list_attractions = (char**) malloc(sizeof(char*) * n);
|
||||||
|
|
||||||
|
for (j = 0; j < n; j++) {
|
||||||
|
list_attractions[j] = (char*) malloc(sizeof(char) * S_MAXSIZE);
|
||||||
|
fgets(list_attractions[j], S_MAXSIZE, stdin);
|
||||||
|
list_attractions[j][strlen(list_attractions[j])-1] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// list of booleans set to true if we need to print the attraction
|
||||||
|
bool* flag_print = (bool*) malloc(sizeof(bool) * n);
|
||||||
|
memset(flag_print, 0, sizeof(bool) * n); // set all booleans to false
|
||||||
|
|
||||||
|
for (j = 0; j < k; j++) {
|
||||||
|
flag_print[o] = true;
|
||||||
|
o = (o + 1) % n;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (j = 0; j < n; j++) {
|
||||||
|
if (flag_print[j]) {
|
||||||
|
printf("%s ", list_attractions[j]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
putchar('\n');
|
||||||
|
|
||||||
|
free(flag_print);
|
||||||
|
for (j = 0; j < n; j++) {
|
||||||
|
free(list_attractions[j]);
|
||||||
|
}
|
||||||
|
free(list_attractions);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
29
tourist.txt
Normal file
29
tourist.txt
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
6
|
||||||
|
4 1 3
|
||||||
|
LikeSign
|
||||||
|
Arcade
|
||||||
|
SweetStop
|
||||||
|
SwagStore
|
||||||
|
4 4 100
|
||||||
|
FoxGazebo
|
||||||
|
MPK20Roof
|
||||||
|
WoodenSculpture
|
||||||
|
Biryani
|
||||||
|
4 3 1
|
||||||
|
LikeSign
|
||||||
|
Arcade
|
||||||
|
SweetStop
|
||||||
|
SwagStore
|
||||||
|
4 3 3
|
||||||
|
LikeSign
|
||||||
|
Arcade
|
||||||
|
SweetStop
|
||||||
|
SwagStore
|
||||||
|
4 3 10
|
||||||
|
LikeSign
|
||||||
|
Arcade
|
||||||
|
SweetStop
|
||||||
|
SwagStore
|
||||||
|
2 1 1000000000000
|
||||||
|
RainbowStairs
|
||||||
|
WallOfPhones
|
Reference in a new issue