Районная олимпиада по информатике. 2015-2016 учебный год
Задача E. Новое число
Ограничение по времени:
1 секунда
Ограничение по памяти:
64 мегабайта
У вас имеется число 0 и две операции с данным числом. Первая операция MUL позволяет умножить данное число на 10, вторая операция ADD позволяет прибавить число 1. Выведите последовательность операции для получения числа $x.$ Выведите не более 30 операций.
Формат входного файла
Единственная строка входных данных содержит число $1 \le x \le 1000.$
Формат выходного файла
Выведите последовательность операции MUL, ADD для получения числа $x.$
Примеры:
Вход 27Ответ
ADD ADD MUL ADD ADD ADD ADD ADD ADD ADD
Комментарий/решение:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int main () {
fast;
ll x, cal, ans;
cin>>x;
cal=x/10;
ans=x%10;
ll i=0, j=1,h=1;
while(i!=x){
while(j<=cal){
cout<<"ADD"<<endl;
i++;
j++;
}
if(i*10<=x){
cout<<"MUL"<<endl;
i*=10;
}
while(h<=ans){
cout<<"ADD"<<endl;
i++;
h++;
}
}
}
Возможно, что при неправильном наборе формул, они будут
доредактированы модератором. При этом содержание не будет меняться.