Напишите программу (python), которая соберет все подарки Иа от всех друзей.
Формат ввода
Целое число — количество строк, затем сами строки, в которых сначала вводится подарок, а потом через дефис, окруженный пробелами, имя друга.
Формат вывода
Вывести для каждого друга (друзья выводятся в обратном алфавитном порядке) список его подарков Иа, но уже в алфавитном порядке. Формат вывода:
Друг: подарок, подарок, подарок
Ввод
5
Букет из чертополоха - Кролик
Бант для хвоста - Кристофер Робин
Гвоздик для хвоста - Кристофер Робин
Спаржевый пудинг - Кролик
Зеленая тряпочка - Пятачок
Вывод
Пятачок: Зеленая тряпочка
Кролик: Букет из чертополоха, Спаржевый пудинг
Кристофер Робин: Бант для хвоста, Гвоздик для хвоста
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,k;
cin>>n>>m>>k;
if(k==m*n-1){
cout<<"IMPOSSIBLE";
return 0;
}
char a[n][m];
for(int i = 0; i<n; i++){
for(int j = 0; j<m; j++){
if(k>0){
a[i][j]='U';
k--;
cout<<'U';
} else if((a[i-1][j]=='U' || i==0) && i==n-1 && j!=m-1){
cout<<'R';
} else if((a[i-1][j]=='U' || i==0) && i==n-1 && j==m-1){
a[i][j] = 'L';
cout<<'L';
} else if(i==n-1 && a[i-1][j]!='U') {
} else {
cout<<'D';
cout<<endl;
Объяснение
код написан на языке с++;
есть 5 случаев которые приведены в картинках ниже + случай когда n*m-1=k выводит Impossible
Напишите программу (python), которая соберет все подарки Иа от всех друзей.
Формат ввода
Целое число — количество строк, затем сами строки, в которых сначала вводится подарок, а потом через дефис, окруженный пробелами, имя друга.
Формат вывода
Вывести для каждого друга (друзья выводятся в обратном алфавитном порядке) список его подарков Иа, но уже в алфавитном порядке. Формат вывода:
Друг: подарок, подарок, подарок
Ввод
5
Букет из чертополоха - Кролик
Бант для хвоста - Кристофер Робин
Гвоздик для хвоста - Кристофер Робин
Спаржевый пудинг - Кролик
Зеленая тряпочка - Пятачок
Вывод
Пятачок: Зеленая тряпочка
Кролик: Букет из чертополоха, Спаржевый пудинг
Кристофер Робин: Бант для хвоста, Гвоздик для хвоста
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m,k;
cin>>n>>m>>k;
if(k==m*n-1){
cout<<"IMPOSSIBLE";
return 0;
}
char a[n][m];
for(int i = 0; i<n; i++){
for(int j = 0; j<m; j++){
if(k>0){
a[i][j]='U';
k--;
cout<<'U';
} else if((a[i-1][j]=='U' || i==0) && i==n-1 && j!=m-1){
cout<<'R';
} else if((a[i-1][j]=='U' || i==0) && i==n-1 && j==m-1){
a[i][j] = 'L';
cout<<'L';
} else if(i==n-1 && a[i-1][j]!='U') {
cout<<'U';
} else {
cout<<'D';
}
}
cout<<endl;
}
return 0;
}
Объяснение
код написан на языке с++;
есть 5 случаев которые приведены в картинках ниже + случай когда n*m-1=k выводит Impossible