Помогите с Memset

Vadik(R)

Well-known member
12.12.2007
469
0
#1
Решаю задачи на динамическое программирование, в общем есть код:
Код:
#include <iostream>

using namespace std;

int main() {
//freopen("input.txt", "r", stdin);
//freopen("output.txt", "w", stdout);
int i,j,n,a[1000],dp[1000];
cin >> n;
for (i=0; i<n; i++)
cin >> a[i];
memset(dp, 1, sizeof dp);
for (i=1; i<n; i++)
for (j=0; j<i; j++)
if (a[j]<a[i] && dp[j]>=dp[i])
dp[i]=dp[j]+1;
cout << dp[n-1]+1 << endl;
return 0;
}
Так вот, если я мемсетом хочу забить массив единицами, то эта вешь не работает, она заполняет его милиардными числами. На отрицательных числах все работает нормально. Пробовал ещё писать вот так:
Код:
memset(dp, (int) 1, sizeof dp);
memset(dp, int (1), sizeof dp);
Но это все равно не помогло. Как тогда надо написать мемсет, чтобы она ИНТОВСКИЙ массив заполнила единицами?