Pagini recente » Cod sursa (job #3192439) | Cod sursa (job #2157300) | Cod sursa (job #2027078) | Cod sursa (job #958183) | Cod sursa (job #380179)
Cod sursa(job #380179)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define min(a,b) ((a)<(b)?(a):(b))
typedef struct matrix {
unsigned short l,c;
} matrix;
unsigned short N;
int PD[500][500];
matrix S[500];
FILE *f,
*g;
int main() {
f = fopen("podm.in","rt"),g = fopen("podm.out","wt");
fscanf(f,"%hu",&N);
unsigned short i,j,k,t;
fpos_t fpos; fgetpos(f,&fpos);
for(i = 0; i < N; ++i) {
fsetpos(f,&fpos);
fscanf(f,"%hu",&S[i].l);
fgetpos(f,&fpos);
fscanf(f,"%hu",&S[i].c);
}
for(t = 1; t < N; ++t)
for(i = 0,j = i + t; j < N; ++i,++j)
for(k = i; k < j; ++k) {
PD[i][j] = min(PD[i][j]?PD[i][j]:0x7FFF,PD[i][k] + PD[k+1][j] + S[i].l*S[k].c*S[j].c);//S[k].c==S[k+1].l
}
fprintf(g,"%d",PD[0][N - 1]);
fclose(f);
fclose(g);
return 0;
}