eolymp
bolt
Try our new interface for solving problems
Problems

Match’s model

published at 6/15/20, 11:21:00 am

Нам потрібно знайти НАЙМЕНШЕ число сірників якщо буде модель 3 х 3 х 3 (блок) то в ній буде менше сірників ніж в моделі 27 х 1 х 1(рядок/колона)

published at 6/24/20, 8:16:40 pm

Наименьшее число рёбер получится только у формы приближённой к кубу. Я решал так:

  1. Вычислил кубоподобный элемент (сначала максимально возможный куб, а потом прибавлял к наименьшему из измерений по "пластине" пока это возможно было), прибавил рёбра

  2. Посчитал, из тех кубов, что остались, оптимальную прямоугольную форму (посчитал рёбра и прибавил, отнял ребра соприкосновения с "кубом")

  3. Досчитал остальные кубики по простой формуле и отнял соприкосновения в двух измерениях. Эту суму прибавил.

Может кто поймёт и это поможет.

published at 12/17/20, 10:50:05 am

Я не понимаю условие задачи. По рисунку я вижу 20 спичек для 3 кубиков. Либо тут рисунок не в тему, либо в условии что-то не то. Помогите понять, пожалуйста.

published at 3/5/21, 2:53:50 pm

Бредовая задача. Точнее условие не полное. Если судить по рисунку и строить кубы в ряд то решение простое: x = n * 8 + 4 Но ели кубов 20 и расположены они: - 5 по горизонтали - 5 по вертикали - 10 по диагонали Как решить такую задачу где условие неизвестно и каждый раз может быть рандомные числа по всех положениях.

published at 7/27/21, 11:45:20 pm

я обрадовался, когда мой код был засчитан на 100% процентов с первой попытки (#9174130), но позже почему-то задумался и пришел к выводу, что тестов недостаточно и система не узнала, что для некоторых значений числа кубиков программа предлагает НЕ минимальное количество спичек. вот как я "строил" конструкцию из 33 кубиков? сначала куб 3 * 3 * 3 (в нем, как легко понять, 27 маленьких кубиков), а оставшиеся 6 добавлял так. повернем большой куб какой-нибудь гранью к себе и пускай кубики, которые мы видим, пронумерованы как на NumPad`е: слева направо, снизу вверх от 1 до 9. клеил кубики на номера 1, 4, 2, 5, 7, 3 в таком порядке. получается, чтобы образовать последний, 33-ий кубик, понадобилось 5 спичек (так как у него по общей грани с 2-я кубиками: тем, который наклеен на цифру 2, и кубиком под номером 3). но ведь было бы рациональней наклеить его на 8-ой кубик! (в таком случае он имел бы по общей грани с целыми тремя кубиками: наклеенными на цифры 5, 7 и кубиком под номером 8). можно было бы сэкономить две спички! и таких примеров полно: для 42, 54 и т. д. я изменил алгоритм, по-прежнему не уверен до конца, что программа сейчас выдает действительно минимальное число спичек. но снова 100%

published at 10/24/21, 2:08:31 am

Все тесты прохожу, кроме 12. Мне кажется там проверка на переполнение, но я не знаю, как защититься от переполнения?

published at 2/14/22, 6:06:20 pm

объясните как нужно делать

published at 5/11/22, 3:44:37 am

what does this mean? every number of problem does not exceed 2 ??

published at 6/6/22, 12:47:49 pm

"Every number of problems does not exceed `2'" What does this sentence mean ? I don't get it

published at 8/1/22, 9:55:25 pm

Tests:

№  - Input
01 - 1
02 - 3
03 - 343
04 - 4
05 - 150
06 - 7
07 - 22
08 - 13
09 - 521
10 - 926
11 - 229
12 - 108
13 - 2
published at 10/22/22, 8:41:07 am

!!!

published at 12/3/22, 1:17:33 pm

1)let num = Number( prompt("Ведіть число кубіків:")) console.log("Сирників в кубіку " + (12*num)) 2)let num = Number( prompt("Ведіть число кубіків:")) if (num <= 1) console.log("Сирників в кубіку " + (12*num)) if (num > 1) console.log("Сирників в кубіках " + (12*num)) Допоможіть?

published at 1/23/23, 4:55:32 pm

там наверное можно использовать библиотеку smath.Там есть готовые функции корня квадратного и кубового.Если у числа есть целый корень,то что-то что-то, а если есть куб ,то что-то,иначе кубики стоят вряд?

published at 1/31/23, 11:32:40 pm

can someone explain task?

published at 10/17/23, 11:47:22 pm

Сделал спустя 8 часов, под музыку The House of the Rising Sun. Всем советую делать самим и вначале подумать, как правильно строить фигуру из кубиков, а лишь меньшая часть - написать код. ( потратил уйму времени ибо писал правильный код к неправильному алгоритму решения ). Всем удачи!

published at 1/4/24, 11:59:06 am

include <cstdlib>

include <iostream>

include <cmath>

using namespace std;

int main() { double n, k=1, i=0, r, r1; cin>>n; for (; k<n ; ++i) k=pow(i+1,3); if (!i) i++;

if ((i-1)*(i-1)*(i-1)<n && n<=(i-1)*(i-1)*i)
{
    r=3*(i-1)*pow(i,2);                                 // 3n(n+1)^2
    n=n-pow(i-1,3);            
}
else
    if ((i-1)*(i-1)*i<n && n<=(i-1)*i*i)
    {
        r = 3*pow(i-1,3) + 9*pow(i-1,2) + 7*(i-1) + 1; // 3n^3 + 9n^2 + 7n + 1
        n=n-pow(i-1,2)*i;
    }
    else
        if ((i-1)*i*i<n && n<=i*i*i )
        {
            r = 3*(pow(i,3) + pow(i,2))-i-1;            // 3n^3 + 3n^2 -n-1
            n=n-pow(i,2)*(i-1);
        }
        else
        {
            cout << i << "???";
            return 0;
        }
for (int i1=1; n; i1+=2)
{
    for (int i2=0; i2<i1 && n; i2++, n--)
    {
        if (i1 == 1) r=r+8;    
        else
            if (i2 == 0 || i2 == i1/2) r=r+5;
            else r=r+3;                    
    }

}
cout << r << endl;
return 0;

}

published at 2/1/24, 1:59:21 pm

include <bits/stdc++.h>

using namespace std; int main() {

double n, k=1, i=0, r, r1; cin>>n; for (; k<n ; ++i) k=pow(i+1,3); if (!i) i++;
if ((i-1)*(i-1)*(i-1)<n && n<=(i-1)*(i-1)*i){
    r=3*(i-1)*pow(i,2);
    n=n-pow(i-1,3);
}
else
    if ((i-1)*(i-1)*i<n && n<=(i-1)*i*i){
        r = 3*pow(i-1,3) + 9*pow(i-1,2) + 7*(i-1) + 1;
        n=n-pow(i-1,2)*i;
    }
else
    if ((i-1)*i*i<n && n<=i*i*i ){
        r = 3*(pow(i,3) + pow(i,2))-i-1;
        n=n-pow(i,2)*(i-1);
    }
    else{
        cout << i << "???";
        return 0;
    }
for (int i1=1; n; i1+=2){
    for (int i2=0; i2<i1 && n; i2++, n--){
        if (i1 == 1)
            r=r+8;
    else
        if (i2 == 0 || i2 == i1/2)
            r=r+5;
        else
            r=r+3;
    }

}
cout << r << endl;

}

published at 4/1/24, 11:25:43 am

include <bits/stdc++.h>

using namespace std; int main() {

double n, k=1, i=0, r, r1; cin>>n; for (; k<n ; ++i) k=pow(i+1,3); if (!i) i++; if ((i-1)(i-1)(i-1)<n && n<=(i-1)(i-1)i){ r=3(i-1)pow(i,2); n=n-pow(i-1,3); } else if ((i-1)(i-1)i<n && n<=(i-1)ii){ r = 3*pow(i-1,3) + 9*pow(i-1,2) + 7*(i-1) + 1; n=n-pow(i-1,2)*i; } else if ((i-1)ii<n && n<=iii ){ r = 3*(pow(i,3) + pow(i,2))-i-1; n=n-pow(i,2)*(i-1); } else{ cout << i << "???"; return 0; } for (int i1=1; n; i1+=2){ for (int i2=0; i2<i1 && n; i2++, n--){ if (i1 == 1) r=r+8; else if (i2 == 0 || i2 == i1/2) r=r+5; else r=r+3; }

} cout << r << endl; }