#include <bits/stdc++.h>
using namespace std;
int main() {
int N,M,total,flag=0;
cin>>N>>M;
int num[N][M];
int Max[N];
for(int i=0;i<N;i++){
for(int j=0;j<M;j++){
cin>>num[i][j];
}
}
for(int a=0;a<N;a++){
for(int b=0;b<M;b++){
if(num[a][b]>=num[a][b-1]){
Max[a]=num[a][b];
}
}
}
for(int a=0;a<N;a++){
total=total+Max[a];
}
cout<<total<<endl;
for(int a=0;a<N;a++){
for(int b=0;b<M;b++){
if(total%Max[a]==0){
cout<<Max[a]<<" ";
flag=1;
break;
}
}
}
if(flag==0){
cout<<"-1";
}
return 0;
}
自己測都對
用這邊就全部錯qwq
#include <bits/stdc++.h>
using namespace std;
int main() {
int N,M,total,flag=0;
cin>>N>>M;
int num[N][M];
int Max[N];
for(int i=0;i<N;i++){
for(int j=0;j<M;j++){
cin>>num[i][j];
}
}
for(int a=0;a<N;a++){
for(int b=0;b<M;b++){
if(num[a][b]>=num[a][b-1]){
/*
b從0開始計
例如a=0,b=0 -> num[0][-1]
這樣會造成記憶體區段錯誤
*/
Max[a]=num[a][b];
}
}
}
for(int a=0;a<N;a++){
total=total+Max[a];
}
cout<<total<<endl;
for(int a=0;a<N;a++){
for(int b=0;b<M;b++){
if(total%Max[a]==0){
cout<<Max[a]<<" ";
flag=1;
break;
}
}
}
if(flag==0){
cout<<"-1";
}
return 0;
}
自己測都對
用這邊就全部錯qwq