Pagini recente » Cod sursa (job #405193) | Cod sursa (job #544385) | Cod sursa (job #1069269) | Cod sursa (job #2398018) | Cod sursa (job #77102)
Cod sursa(job #77102)
#include <stdio.h>
#define infile "elimin.in"
#define outfile "elimin.out"
#define nmax 300
#define inf 999999999
int v[nmax][nmax], n, m, r, c, i, j;
long rez, linii[nmax], coloane[nmax];
void readdata();
void writedata();
void solve();
int main()
{
readdata();
solve();
writedata();
return 0;
}
void readdata()
{
freopen(infile, "r", stdin);
scanf("%d %d %d %d\n", &n, &m, &r, &c);
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
{
scanf("%d ", &v[i][j]);
rez+=v[i][j];
linii[i]+=v[i][j];
coloane[j]+=v[i][j];
}
fclose(stdin);
}
void writedata()
{
freopen(outfile, "w", stdout);
printf("%ld", rez);
fclose(stdout);
}
void solve()
{
long min, ln;
for (i=0; i<r; i++)
{
min=inf;
for (j=1; j<=n; j++)
if (linii[j]<min)
{
min=linii[j];
ln=j;
}
rez-=linii[ln];
linii[ln]=inf;
for (j=1; j<=m; j++) coloane[j]-=v[ln][j];
}
for (i=0; i<c; i++)
{
min=inf;
for (j=1; j<=m; j++)
if (coloane[j]<min)
{
min=coloane[j];
ln=j;
}
rez-=coloane[ln];
coloane[j]=inf;
for (j=1; j<=n; j++) linii[j]-=v[j][ln];
}
}