Mai intai trebuie sa te autentifici.
Cod sursa(job #89012)
| Utilizator | Data | 5 octombrie 2007 11:57:29 | |
|---|---|---|---|
| Problema | Elimin | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.33 kb |
#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;
}
