plz_make_shorter_max

 avatar
unknown
c_cpp
3 years ago
1.6 kB
4
Indexable
#include<iostream>
#include <algorithm>
using namespace std;
int main(){
	int m,n,sum=0;
	cin>>m>>n;
	int a[20][20];
  bool ans = false; // 初始值設為false
  for(int k=0;k<20;k++){
		for(int q=0;q<20;q++){
		a[k][q]=0;	
		}
  }
	for(int i=0;i<m;i++){
		for(int j=0;j<n;j++){
		cin>>a[i][j];	
		}
	
	// 我把下面土法煉鋼的程式先註解掉
// 	sum=sum+std::max({a[i][0],a[i][1],a[i][2],a[i][3],a[i][4],a[i][5],a[i][6],a[i][7],a[i][8],a[i][9],a[i][10],a[i][11],a[i][12],a[i][13],a[i][14],a[i][15],a[i][16],a[i][17],a[i][18],a[i][19]});
	   // 既然你都引用algorithm 函式庫,就來示範另一個函數:max_element怎麼用吧!
	   sum = sum + *max_element(a[i], a[i]+20);	 // 從a的第i列開頭取20個元素,找出最大值,跟sum加總
	}
	cout<<sum<<endl;
	for(int x=0;x<m;x++){ // 大括弧記得加,才能包住所有所需程式敘述
    if(sum % std::max({a[x][0],a[x][1],a[x][2],a[x][3],a[x][4],a[x][5],a[x][6],a[x][7],a[x][8],a[x][9],a[x][10],a[x][11],a[x][12],a[x][13],a[x][14],a[x][15],a[x][16],a[x][17],a[x][18],a[x][19]})==0){
      if(ans)  cout << " ";// ans初在遇到第一個可整除的最大值才會變成true,再之後前面才需要輸出空格
      ans=true;
    //   cout<<std::max({a[x][0],a[x][1],a[x][2],a[x][3],a[x][4],a[x][5],a[x][6],a[x][7],a[x][8],a[x][9],a[x][10],a[x][11],a[x][12],a[x][13],a[x][14],a[x][15],a[x][16],a[x][17],a[x][18],a[x][19]});
        cout << *max_element(a[x], a[x]+20);// 從a的第i列開頭取20個元素,找出最大值
        
    }
	}
    if(ans==false)
    {
      cout<<"-1";
    }

	return 0;	
}