<untitled> (C++)

Ревизии: current

text/plain
text/html
source
Old rev.:
#include <iostream>
#include <vector>

using namespace std;

vector<int> dp(5001);

int main()
{
//  freopen("uj.in","r",stdin);
//  freopen("uj.out","w",stdout);

    for (int i = 1; i <= 5000; i++)
        dp[i] = i;

    for (int i = 2; i <= 5000; i++)
        for (int j = 2; j * j <= i; j++)
            if (i % j == 0 && dp[j] + 2 + dp[i / j] < dp[i])
                    dp[i] = dp[j] + 2 + dp[i / j];

    for (int i = 2; i <= 5000; i++)
        for (int j = 1; i - j > 0; j++)
            if (dp[j] + dp[i - j] + 2 < dp[i])
                dp[i] = dp[j] + dp[i - j] + 2;

    int e = 0;

    while (cin >> e && e != 0)
        cout << dp[e] << endl;

    return 0;
}

 

Комментарии:

Нет