int main(void) { int m, n; int A[MAX_N]; int i, j; FILE *in, *out; in = fopen("lawrence.in", "r"); out = fopen("lawrence.out", "w"); while (fscanf(in, "%d %d", &n, &m) == 2 && (n || m)) { for (i = 0; i < n; i++) { fscanf(in, "%d", A+i); } for (i = 0; i <= n; i++) { for (j = 0; j <= m; j++) { best[i][j] = -1; } } compute_val(A, n); compute(n, m); fprintf(out, "%d\n", best[n][m]); } return 0; }
NDnetwork_Data *addNDData(NDnetwork *net, int type, const char *name, double(*compute_val)(NDnetwork* net,int type,int index,void* info), void *info) { long i; int index=-1; double *data; long N; char tmp[255]; if (type==0) N=net->nvertex; else N=net->nfaces[type]; if (N==0) { fprintf(stderr,"In addNDData: Cannot add data for %d-faces, as they are not defined.\n",type); return NULL; } index=NDDataIndex(net,type,name); if (type==0) sprintf(tmp,"vertices"); else if (type==1) sprintf(tmp,"edges"); else sprintf(tmp,"%d faces",type); if (index>=0) {if (verbose>1) printf ("Replacing '%s' data field for %s ... ",name,tmp);fflush(0);} else {if (verbose>1) printf ("Adding '%s' data field for %s ... ",name,tmp);fflush(0);} if (index<0) { net->ndata++; net->data=realloc(net->data,sizeof(NDnetwork_Data)*net->ndata); index=net->ndata-1; net->data[index].type=type; strcpy(net->data[index].name,name); net->data[index].data=malloc(N*sizeof(double)); } data=net->data[index].data; for (i=0;i<N;i++) data[i] = compute_val(net,type,i,info); if (verbose>1) printf("done.\n"); return &net->data[index]; }