Bună! Am nevoie de ajutor la problema #1444 Memory001 pentru 100 de puncte (in c++)
erința
Se dă o matrice cu m linii şi n coloane şi elemente numere naturale. Determinaţi coloana din matrice pentru care suma elementelor este minimă. Dacă sunt mai multe coloane cu suma minimă, se va afişa indicele minim al unei asemenea coloane.
Date de intrare
Fișierul de intrare memory001.in conține pe prima linie numerele m şi n reprezentând dimensiunile matricei, iar pe următoarele m linii câte n numere naturale separate prin spații reprezentând elementele matricei.
Date de ieșire
Fișierul de ieșire memory001.out va conține pe prima linie cel mai mic indice al unei coloane din matrice având suma elementelor minimă.
Restricții și precizări
2 ≤ m , n ≤ 1000
elementele matricei vor fi mai mici decât 2.000.000.000
numerotarea liniilor și a coloanelor matricei începe de la 1
Exemplu
memory001.in
2 3
1 2 3
7 10 5
memory001.out
1
Explicație
Suma elementelor pe cele trei coloane este 8 , 12, respectiv 8. Coloana cu indice minim având suma elementelor minimă este coloana 1.
Răspunsuri la întrebare
#include <fstream>
using namespace std;
ifstream f("memory001.in");
ofstream g("memory001.out");
unsigned m,n,i,j,jmin;
unsigned long long int a,v[1001],minim,s;
int main()
{
f>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
f>>a;
v[j]+=a;
}
minim=v[1];
jmin=1;
for(j=2;j<=n;j++)
if(v[j]<minim)
{
minim=v[j];
jmin=j;
}
g<<jmin;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("memory001.in");
ofstream fout("memory001.out");
long long t[1005];
int n,m;
int main()
{
int x,i,j;
long long smin;
fin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
fin>>x;
t[j]+=x;
}
smin=t[1];
x=1;
for(j=1;j<=m;j++)
if(t[j]<smin)
{
smin=t[j];
x=j;
}
fout<<x<<"\n";
fout.close();
return 0;
}