POJ 2535 Very Simple Problem


http://poj.org/problem?id=2535
 
Very Simple Problem
Time Limit: 2000 MS
 
メモリLimit: 65536 K
Description
During a preparation of programming contest、its jury is usual faced with many difficult tasky.One of them is to select a problem enough to most、if not all、contestants to solive. 
The difficulty here lies in diverse meanings of the term"simple"amongst the jury members.So,the jurryuses the following procedure to reach a consensus:each member weight each proposed proposed problem with a positive integer「complexity rating」(not necessary dierent for different profferent profferent profferent ms)。The therefferent profferent therefferent inemblembles。The memblembles。The memblemblembles。and「ハードスト」those problems that he gave the maximum coplexity rating. 
The ratings received from all jumrymembers are then compred、and a problem is declead as「very simple」、if it was caled as「simplest」by more than a half of the jury、and was caled cared「hard bybody.」
Input
The first line of input file contains integers N and P,the number of jumry members and the number of probles.The following N lines contain P integers from 0 to 1000 each-the complexity ranks.1Output
Output file must contain_orded list of problems caled as「very simple」、separated by spaces.If there re no such probles、output must contain a single integer 0(ゼロ).
Sample Input
4 4
1 1 1 2
5 900 21 40
10 10 9 10
3 4 3 5
Sample Output
3
/* Author : yan
 * Question : POJ 2535 VerySimple Problem
 * Date && Time : Tuesday, April 26 2011 04:45 PM
 * Compiler : gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
*/
#include<stdio.h>
#define MAXSIZE 105
#define MIN 0xFFFF
#define MAX -1
#define bool _Bool
#define TRUE 1
#define FALSE 0
int input[MAXSIZE],count[MAXSIZE];
bool hard[MAXSIZE];

int main()
{
	//freopen("input","r",stdin);
	int n,p;
	int i,j;
	bool flag=FALSE;
	int max,min;
	scanf("%d %d",&n,&p);
	for(i=0;i<n;++i)
	{
		for(j=0;j<p;++j) scanf("%d",&input[j]);
		max=MAX,min=MIN;
		for(j=0;j<p;++j)
		{
			if(max<input[j]) max=input[j];
			if(min>input[j]) min=input[j];
		}
		//printf("MAX=%d MIN=%d/n",max,min);
		for(j=0;j<p;++j)
		{
			//printf("input[%d]=%d  min=%d/n",j,input[j],min);
			if(input[j]==max) hard[j]=TRUE;
			if(input[j]==min) count[j]++;
		}
	}
	for(i=0;i<p;++i)
	{
		if( hard[i]==FALSE && count[i]>n/2 ) printf("%d ",i+1),flag=TRUE;
		//printf("%d ",count[i]);
	}
	if(!flag) printf("0");
	printf("/n");
	return 0;
}