Răspuns :
#include <iostream>
using namespace std;
int a[102][102], n, m, i, j, k, x[102], maxim, p;
int main()
{
cin>>n>>m;
for(i=1; i<=n; i++)
for(j=1; j<=m; j++)
cin>>a[i][j];
for(j=1; j<=m; j++)
{
p=1;
for(i=1; i<=n; i++)
p*=a[i][j];
x[++k]=p;
}
for(i=1; i<=k; i++)
{
if(x[i]>maxim)
maxim=x[i];
}
for(i=1; i<=k; i++)
if(x[i]==maxim)
cout<<i<<' ';
return 0;
}
Am procedat astfel: Mergand pe fiecare coloana, am determinat produsul elementelor si le-am pus intr-un vector numit x[]. Dupa acest pas, am identificat cea mai mare valoare pe care o gasim in vector, "maxim". La final, am parcurs din nou vectorul si acolo unde gasim elementele egale cu valoarea maxima, se va afisa pozitia acestora, care reprezinta acelasi lucru cu pozitia coloanelor. Practic, am lucrat problema in vectori.