Форум Всеукраїнської інтернет-олімпіади NetOI


На форумі обговорюються лише питання, пов'язані з олімпіадою

Ви не зайшли.

#1 2020-11-08 12:01:39

LVV
Олімпієць
Звідки: Олешки
Зареєстрований: 2010-11-19
Повідомлень: 360
Вебсайт

Розв'язок задачі Mult2020

Пропоную не чекати пів року а ділитись розв'язками тут.


Алгоритм:
Добуток найбільший, якщо числа однакові.
Якщо числа різні, то зробимо різницю між ними мінімальною, тобто: 1

Код:

#include <iostream>;
using namespace std;
int main()
{
    int n,k;
    cin >> n >> k;
 
    int max = n/k;//якщо можна розбити на однакові доданки, то яким буде значення такого доданку 
    int ost = n%k;//скільки буде чисел більших від max
    int cel = k-ost;//скільки буде чисел, що дорівнюють max
 
    for (int i=0; i<cel; i++)
    cout << max << " ";
 
    for (int i=0; i<ost; i++)
    cout << max+1 << " ";
            
return 0;
}

Відредаговано LVV (2020-11-08 12:38:01)


Вік живи - вік навчайся.

Поза форумом

 

#2 2020-11-08 17:13:58

GeniusDP
Олімпієць
Зареєстрований: 2020-10-15
Повідомлень: 18

Re: Розв'язок задачі Mult2020

Код:

#include <stdio.h>
#include<vector>
#include<algorithm>

using namespace std;


//Complexity: O(k)

int main()
{
    int n, k;
    scanf("%d%d", &n, &k);
    vector<int> a(k);
    for(int i=0; i<k; i++)a[i]=n/k;
    for(int i=0; i<n%k; i++)a[i]++;
    reverse(a.begin(), a.end());
    for(int i=0; i<k; i++)printf("%d ", a[i]);
    return 0;
}
//Это моё творчество. Идея та же.

Відредаговано GeniusDP (2020-11-08 17:34:19)

Поза форумом

 

#3 2020-11-08 23:26:40

FordPerfect
Новий користувач
Зареєстрований: 2014-11-15
Повідомлень: 30

Re: Розв'язок задачі Mult2020

Код:

#include <cstdio>

using std::scanf;
using std::printf;

int main()
{
    int k,n;
    scanf("%d%d",&n,&k);
    for(int i=0;i<k;++i)
        printf("%d ",(n+i)/k);
    return 0;
}

Поза форумом

 

#4 2020-11-11 18:14:34

andervish
Новий користувач
Зареєстрований: 2011-01-16
Повідомлень: 25

Re: Розв'язок задачі Mult2020

Код:

(n+i)/k

это просто прекрасно!

Моё решение (python 2.7)

Код:

n, k = map(int, raw_input().split())
q, r = n/k, n%k
print ' '.join([str(q)]*(k-r)+[str(q+1)]*r)

Поза форумом

 

Нижній колонтитул

Powered by Likt
© Copyright 2002–2009 Likt