题意:
输入两个正整数M和N(M<=800,N<=600),分别代表一张图片的宽度和高度,接着输入N行每行包括M个点的颜色编号,输出这张图片主导色的编号。(一张图片的主导色占据了一半以上的像素点)
代码:
#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
int a[500007];
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int m,n;
cin>>m>>n;
int cnt=0;
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
cin>>a[++cnt];
}
}
sort(a+1,a+1+cnt);
if(m==1&&n==1){
cout<<a[1];
return 0;
}
int tamp=0,ans=0;
for(int i=2;i<=cnt;++i){
if(a[i]==a[i-1]){
++tamp;
}
else{
tamp=1;
}
if(tamp>cnt/2){
cout<<a[i];
return 0;
}
}
return 0;
}
【PAT甲级】1054 The Dominant Color (20 分)
原文:https://www.cnblogs.com/ldudxy/p/11634203.html