Решение задачи Больше гласных! с Codeforces

Без пояснения   Просмотров: 22


Том любит гласные, он обожает длинные слова с большим количеством гласных букв. Его любимые слова — те, которые набиты гласными. Мы считаем, что слово длины k набито гласными, если существуют такие положительные целые числа n и m, что n⋅m=k, и если записать буквы слова в таблицу с n строками и m столбцами (сначала заполняется первая строка, потом вторая и так далее, каждая строка заполняется слева направо), то каждая гласная буква латинского алфавита встречается (один или более раз) в каждой строке и каждом столбце.

Вам дано целое число k. Найдите набитое гласными слово длины k или выведите −1, если такого слова не существует.

Гласными буквами латинского алфавита в этой задаче считаются буквы «a», «e», «i», «o», «u». Словом в данной задаче называется любая последовательность строчных букв латинского алфавита.

Код

#include <bits/stdc++.h>
using namespace std;

char val[5] = {'a','i','u','e','o'};
int n;
int main(){
	scanf("%d", &n);
	for(int i = 5; i*i <= n; i++){
		if(n%i == 0){
			int x = i;
			int y = n/i;
			for(int j = 0; j < x; j++){
				for(int k = 0; k < y; k++){
					printf("%c", val[(j+k)%5]);
				}
			}
			return 0;
		}
	}	
	printf("-1\n");
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться