#include #include #define MAXN 1000 #define MAXP 1000 #define MAXS 1000 /* soucet[i][j] = nejlepší součet zkontrolovaného * zboží v intervalu stanic 1..j pomocí i scanneru */ int soucet[MAXN][MAXS]; /* cena[i][j] = kolik zásilek by zkontroloval * scanner na úseku j-1:j, pokud nejbližší scanner * před ním je na posici i-1:i; * cena[i][i] = kolik zásilek by zkontroloval * scanner na posici i-1:i, pokud před ním žádný jiný * scanner není */ int cena[MAXS][MAXS]; int zas_odkud[MAXP], zas_kam[MAXP], zas_kolik[MAXP]; int tmp[MAXP]; int main(){ int i,j,k,l,m; int N, S, P; /* počet scannerů, stanic, zásilek */ scanf("%d %d %d",&N,&S,&P); for (i=0; i cena[i][i] ) ? soucet[1][i-1] : cena[i][i]; for(i=2; i<=N; i++) { /* ať v příštím kroku nečteme nedefinované */ soucet[i][i-2] = 0; for(j=i-1; jl ? soucet[i][j] : l; } } } printf("%d\n", soucet[N][S-1]); }