Pagini recente » Cod sursa (job #794635) | Cod sursa (job #2952351) | Cod sursa (job #3224062) | Cod sursa (job #2439741) | Cod sursa (job #1652720)
#include<cstdio>
#include<ctime>
#include<cstdlib>
#define INF 2000000000
int p,n,st,dr,i,w,j,p1,p2,vmax,smax,d[2010],d1[2010],v[2010][2010];
long long a,b;
FILE *f,*g;
int maxim(int a,int b){
if(a>b)
return a;
return b;
}
int minim(int a,int b){
if(a<b)
return a;
return b;
}
int main(){
f=fopen("summax.in","r");
g=fopen("summax.out","w");
fscanf(f,"%d%d%d%d",&p,&n,&st,&dr);
srand(time(0));
for(i=1;i<=n;i++){
for(j=1;j<=i;j++){
//w=rand()% 50;
//fprintf(g,"%d ",w);
fscanf(f,"%d",&w);
if(i!=1){
p1=j-1;
p2=j;
if( d1[p1] > d1[p2] ){
v[i][j] = v[i-1][p1];
a = d1[p1];
b = w;
d[j] = a + b;
}
else if( d1[p1] < d1[p2] ){
v[i][j] = v[i-1][p2];
a = d1[p2];
b = w;
d[j] = a + b;
}
else if( d1[p1] == d1[p2] ){
a = v[i-1][p1];
b = v[i-1][p2];
if( a + b > INF )
v[i][j] = INF + 1;
else
v[i][j] = a + b;
d[j] = d1[p1] + w;
}
}
}
if(i!=1){
for(j=1;j<=i;j++){
d1[j] = d[j];
}
}
if(i==1){
v[1][1]=1;
d1[1]=w;
}
//fprintf(g,"\n");
}
for(i=1;i<=n;i++){
if( d[i] > vmax ){
vmax = d[i];
smax = v[n][i];
}
else if( d[i] == vmax ){
a = smax;
b = v[n][i];
if( a + b > INF )
smax = INF + 1;
else
smax = a + b;
}
}
if(p==1){
fprintf(g,"%d",smax);
return 0;
}
/*if(p==2){
np = dr - st + 1;
ss = 0;
for(i=1;i<=n;i++){
if( d[i] == vmax ){
if( ss + v[n][i] >=st){
for(j=np;j<=np+v[n][i];j++){
nr++;
if( j >= st && j <= dr ){
nr++;
calc(n,i);
}
}
a = st - ss;
b = dr - ss;
for(j=1;j<=minim(b, v[n][j]);j++){
s[++nr][n] = i;
}
a=i;
for(j=n;j>1;j--){
if( v[j][a] == v[j-1][a] )
for(ii=np;ii<=nr;ii++){
s[ii][j-1] =
}
}
st == ss;
}
ss += v[n][i];
np += v[n][i];
}
}
}*/
fclose(f);
fclose(g);
return 0;
}