Pagini recente » Cod sursa (job #465796) | Cod sursa (job #1881136) | Cod sursa (job #2358644) | Cod sursa (job #3218313) | Cod sursa (job #89012)
Cod sursa(job #89012)
#include <stdio.h>
#include <alloc.h>
FILE *f=fopen("elimin.in","r");
FILE *g=fopen("elimin.out","w");
struct pnod{
int info ;
struct pnod *adr ;
} ;
struct pnod *p[9000];
struct pnod *u[9000];
int suma ;
void aranjare(int i,int k)
{
struct pnod *nou;
struct pnod *q;
if (p[i]==NULL )
{
p[i]=(struct pnod *)
malloc(sizeof(struct pnod));
p[i]->info=k;
u[i]=p[i];
}
else
if (k>p[i]->info)
{
nou=(struct pnod *)
malloc(sizeof(struct pnod));
nou->adr=p[i];
nou->info=k;
p[i]=nou;
}
else
if (k<u[i]->info)
{
nou=(struct pnod *)
malloc(sizeof(struct pnod));
u[i]->adr=nou;
nou->adr=NULL;
nou->info=k;
u[i]=nou;
u[i]->adr=NULL;
}
else
{
q=p[i];
while (k<q->adr->info)
q=q->adr;
nou=(struct pnod *)
malloc(sizeof(struct pnod));
nou->adr=q->adr;
q->adr=nou;
nou->info=k;
}
}
int main(void){
int M,N,R,C,k,i,j;
struct pnod *t;
fscanf(f,"%d %d %d %d\n",&M,&N,&R,&C);
for (i=1;i<=N;i++)
{
for (j=1;j<=M;j++)
{
fscanf(f," %d ",&k);
aranjare(i,k);
}
fscanf(f,"\n");
}
suma=0;
for (i=1;i<=N-R;i++)
{
t=p[i];
for (j=1;j<=M-C;j++)
{
suma=suma+t->info;
t=t->adr;
}
}
fprintf(g," %d ",suma);
fclose(g);
return 0;
}