Pagini recente » Cod sursa (job #2128932) | Cod sursa (job #566030) | Cod sursa (job #2757455) | Cod sursa (job #2191575) | Cod sursa (job #922517)
Cod sursa(job #922517)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
short n,m,r,c;
ifstream f("elimin.in");
f>>m>>n>>r>>c;
short t[m][n],i,j;
long long ossz=0,sor[m],osz[n];
fill(sor,sor+m,0);
fill(osz,osz+n,0);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
f>>t[i][j];
osz[j]+=t[i][j];
sor[i]+=t[i][j];
}
int sori,oszli;
long long sormin=1000000000000,oszmin=1000000000000;
while(r>0||c>0)
{
for(i=0;i<m;i++)
{
if(sor[i]<sormin&&sor[i]!=-1)
{
sormin=sor[i];
sori=i;
}
}
for(i=0;i<n;i++)
{
if(osz[i]<oszmin&&osz[i]!=-1)
{
oszmin=osz[i];
oszli=i;
}
}
if((oszmin<sormin&&r>0)||(r>0&&c==0))
{
for(i=0;i<m;i++)
{
sor[i]-=t[i][oszli];
}
osz[oszli]=-1;
r--;
}
if((oszmin>=sormin&&c>0)||(c>0&&r==0))
{
for(i=0;i<n;i++)
{
osz[i]-=t[sori][i];
}
sor[sori]=-1;
c--;
}
}
for(i=0;i<m;i++)
{
if(sor[i]>-1)
ossz+=sor[i];
}
/*for(i=0;i<n;i++)
{
if(osz[i]>-1)
ossz+=osz[i];
}*/
ofstream g("elimin.out");
g<<ossz<<"\n";
}