Фишки
Дана полоска из клеток, пронумерованных от 1 до N слева направо. Разрешено:
Снимать или ставить фишку на клетку с номером 1.
Ставить фишку на клетку, следующую за самой левой из установленных фишек (правее неё), если она пуста.
Удалять фишку на клетке, следующей за самой левой из установленных фишек (правее неё), если она занята.
Изначально полоска пуста. Нужно разместить фишки во всех клетках.
Входные данные
Программа получает на вход количество клеток в полоске N(1≤N≤10).
Выходные данные
Программа должна вывести последовательность номеров клеток, с которыми совершается действие. Если фишка снимается, то номер клетки должен выводиться со знаком минус. Количество действий не должно превышать 104. Если существует несколько возможных решений задачи, то разрешается вывести любое.
Примеры
Ввод
3
Вывод
1 2 -1 3 1
#include <stdio.h>
float gmax, gmin;
void privet(float a, float b, float c, float d) {
float x[4], max, min;
x[0] = a;
x[1] = b;
x[2] = c;
x[3] = d;
max = a;
min = a;
for (int i = 0; i < 4; i++) {
if (max <= x[i])
max = x[i];
else if (min >= x[i])
min = x[i];
}
gmax = max;
gmin = min;
}
int main()
{
float c1, c2, c3, c4;
scanf("%f%f%f%f", &c1, &c2, &c3, &c4);
privet(c1, c2, c3, c4);
printf("Max:%f\nMin:%f", gmax, gmin);
return 0;
}
Рассмотрим каждую маску:
Маске *tar*.mp* соответствуют 5 файлов: все кроме первого,
Маске *?tar?*.mp? соответствуют 3 файла: mustard.mp3, catarsis.mp4, vitarcon.mp4
Маске ?*tar*.mp?* соответствуют 4 файла: mustard.mp3, catarsis.mp4, vitarcon.mp4, star.mp3
Маске *t*r*?.m?p* соответствует 1 файл: mustard.map
Маске ???*???.mp* соответствуют 3 файла: mustard.mp3, catarsis.mp4, vitarcon.mp4
Маске ???*???.m* соответствуют 4 файла: mustard.map, mustard.mp3, catarsis.mp4, vitarcon.mp4
Маске *a*.*a* соответствует 1 файл: mustard.map
Маске *s*.mp* соответствуют 4 файла: mustard.mp3, catarsis.mp4, taras.mp3, star.mp3
Итого: 3 маски, которым соответствуют ровно четыре файла из данного каталога.
ответ: 3.