Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 26.11.2018
Сообщений: 2

Перевод с C++ на Python

26.11.2018, 20:05. Показов 3270. Ответов 3

Студворк — интернет-сервис помощи студентам
Нужно перевести код, но не совсем понимаю что к чему.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
 
using namespace std;
 
int n;
vector<int> Pr,B,posPr,PrRev;
int maxP = -1, resL = -1, resP = -1;
void input()
{
    cin>>n;
 Pr.resize(n); B.resize(n);
    for (int i=0;i<n;i++) {
        cin>>Pr[i];
 posPr.push_back(Pr[i]);
 posPr.push_back(Pr[i]-1);
    }
    for (int i=0;i<n;i++)
        cin>>B[i];
}
int calc(int L, int P, vector<int> &Pr) {
    int curB = 0;
    // идем слева
    bool isLeft = true;
    for (int i=0; i <= L;i++) {
        if (Pr[i]<P)
 isLeft = false;
    }
    if (isLeft) {
        int ML = n-1;
        for (int i=L+1;i<n-1;i++) {
            if (Pr[i] <= P) {
 ML = i;
                break;
            }
        }
        for (int i=L+1; i<=ML; i++)
 curB += B[i];               
    }
    return curB;
}
void solve()
{
    sort(posPr.begin(),posPr.end());
    vector<int>::iterator it = unique(posPr.begin(),posPr.end());
 posPr.resize( it - posPr.begin());
 PrRev = Pr;
    reverse(PrRev.begin(),PrRev.end());
    for (int L=0; L<=n-2; L++) {
        for (vector<int>::iterator P = posPr.begin(); P != posPr.end(); P++) {
            int f = calc(L, *P,Pr);
 
            int s = calc(n-2-L, *P,PrRev);
 
            int curB = f+s;
 
            int curP = curB * *P;
            if (curP > maxP) {
 maxP = curP;
 resP = *P;
 resL = L;
            }
        }
    }
    cout<<resL+1<<' '<<resP;
}
int main()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
 
 input();
 solve();
    return 0;
}
На базаре есть ряд из N мест, где продаются семечки подсолнечника. Потенциальные покупатели идут вдоль ряда, затем в некоторый момент останавливаются и покупают семечки. Качество семечек от места к месту различается незначительно, так что разницы только в цене семечек и положении места.

Перед тем как выйти на рынок в качестве ещё одного продавца семечек, Вы провели исследование рынка, чтобы найти зависимость числа покупателей от двух названных факторов. Исследование показывает, что большинство покупателей следуют одному и тому же шаблону. Они проходят мимо нескольких мест, замечая и запоминая цены, а затем после обхода K мест, возвращаются к месту с наименьшей замеченной ценой, совершают там покупку, затем покидают базар. Если есть несколько мест с одинаковой ценой, покупатель выбирает ближайшее.

Предположим, что есть пять мест с ценами 37, 34, 34, 35, 33. Если покупатель с K = 4 идёт слева направо, он видит семечки по ценам 37, 34, 34, 35. В этот момент он решает, что видел достаточно, возвращается к третьему месту и покупает семечки там. Хотя на втором месте цена та же, что и на третьем, покупателю до него идти дальше. Если бы тот же покупатель зашёл справа, он бы увидел цены 33, 35, 34, 34, затем остановился и вернулся бы к пятому месту.

Число мест, пройденных до принятия решения (K), является функцией жадности и терпеливости покупателя, и, очевидно, различается у разных покупателей. Исследование выявило средний процент BK покупателей для всех значений K (1 <= K <= N, 0 <= BK <= 99, сумма всех BK равна 100).

Вам следует определить оптимальную стратегию на этом рынке (то есть цену и положение нового места, которое максимизирует ожидаемый средний доход) в предположении, что половина клиентов идёт в направлении от первого места к N-му, а другая половина - от N-го места к первому, и они следуют описанному шаблону.

Входные данные
В первой строке находится число существующих мест N, во второй строке - N целых чисел - цены на каждом месте, в третьей строке - N целых чисел в диапазоне от 0 до 99 - значения BK для каждого K. Все числа в строках разделены пробелами.

Ограничения: 2 <= N <= 100, исходные цены - целые числа от 1 до 9999.

Выходные данные
Выводятся два целых числа - L и P. L (0 < L < N) - это число существующих мест, после которых должно быть размещено новое (Вам не разрешается устанавливать своё место первым или последним). Число P - оптимальная цена. Если существует более чем одно оптимальное решение, Вы должны выбрать решение с минимальным L, а среди них - с минимальным P.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.11.2018, 20:05
Ответы с готовыми решениями:

Перевод кода из Pascal в Python - Python
Имеется код программы на языке Pascal, требуется перевести его в Python. Я не могу перевести его в Python Код program pryam1; ...

Перевод кода с C++ на Python - Python
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;cstdlib&gt; using namespace std; struct trainbilets{ ...

Перевод с С++ в Python
Помогите перевести код в Python #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;math.h&gt; using namespace std; int main() ...

3
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
26.11.2018, 20:17
Цитата Сообщение от Mirt- Посмотреть сообщение
Нужно перевести код
Что, вот так задача и поставлена? Типа вот вам код, который что-то непонятное делает, ну-ка тупо переведите его..
0
0 / 0 / 0
Регистрация: 26.11.2018
Сообщений: 2
26.11.2018, 20:26  [ТС]
Грубо говоря да посыл был именно такой "тупо переведите его"
Но по идее достаточно решения поставленной задачи на Python
0
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
27.11.2018, 00:55
Что-то я слепой, задачу и не заметил..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.11.2018, 00:55
Помогаю со студенческими работами здесь

Перевод с python на c++
import math #pi - число pi, rad - радиус сферы (Земли) rad = 6372795 #координаты двух точек llat1 = 77.1539 llong1 =...

Перевод с Python на C++
у меня есть код на питоне: n=int(input()) a=list(map(int,input().split())) m=dict.fromkeys(a,0) for i in range(n): m]=i+1 ...

Перевод с Python на C++
Помогите, пожалуйста, перевести код с Python на c++ - решение на python не заходит из-за превышения времени.. n = int(input()) all =...

Перевод из python в с++
Необходимо перевести из питона в срр. Задача такая, определить, можно ли из 1-ой строки создать 2-ую. На питоне задача выглядит явно...

Перевод из Python в С++
Ребята очень нужна помощь нужно перевести данный ко в c++.Очень сильно не понятны моменты c &quot;for _ in range&quot; n = int(input()) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru