#include <cstdio>
int main(void){
int n;
scanf("%d", &n);
int c[2000][2000];
for (int i=0; i<n; i++)
for (int j=i; j<n; j++)
scanf("%d", &(c[i][j]));
int *ww = new int [n];
for (int i=0; i<n; i++)
ww[i]=c[i][i];
for (int i=1; i<n; i++)
{
//sprawdzamy kawalki o dl i+1
for (int j=0; j<n-i; j++)
{
int max = ww[j];
int maxk = 0;
for (int k=1; k<i+1; k++)
if (ww[j+k]>max)
{
max = ww[j+k];
maxk=k;
}
if (max>c[j][j+i])
ww[j+maxk]=c[j][j+i];
}
}
int sum=0;
for (int i=0; i<n; i++)
sum+=ww[i];
printf("%d\n",sum);
delete [] ww;
return 0;
}
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 | #include <cstdio> int main(void){ int n; scanf("%d", &n); int c[2000][2000]; for (int i=0; i<n; i++) for (int j=i; j<n; j++) scanf("%d", &(c[i][j])); int *ww = new int [n]; for (int i=0; i<n; i++) ww[i]=c[i][i]; for (int i=1; i<n; i++) { //sprawdzamy kawalki o dl i+1 for (int j=0; j<n-i; j++) { int max = ww[j]; int maxk = 0; for (int k=1; k<i+1; k++) if (ww[j+k]>max) { max = ww[j+k]; maxk=k; } if (max>c[j][j+i]) ww[j+maxk]=c[j][j+i]; } } int sum=0; for (int i=0; i<n; i++) sum+=ww[i]; printf("%d\n",sum); delete [] ww; return 0; } |
English