POJ 2535 Very Simple Problem(내 물문제 가는 길--오답)
Time Limit: 2000MS
Memory Limit: 65536K
Total Submissions: 3284
Accepted: 1232
Description
During a preparation of programming contest, its jury is usually faced with many difficult tasks. One of them is to select a problem simple enough to most, if not all, contestants to solve.
The difficulty here lies in diverse meanings of the term "simple"amongst the jury members. So, the jury uses the following procedure to reach a consensus: each member weights each proposed problem with a positive integer "complexity rating"(not necessarily different for different problems). The jury member calls "simplest"those problems that he gave the minimum complexity rating, and "hardest"those problems that he gave the maximum complexity rating.
The ratings received from all jury members are then compared, and a problem is declared as "very simple", if it was called as "simplest"by more than a half of the jury, and was called as "hardest"by nobody.
Input
The first line of input file contains integers N and P, the number of jury members and the number of problems. The following N lines contain P integers in range from 0 to 1000 each - the complexity ranks. 1 <= N, P <= 100
Output
Output file must contain an ordered list of problems called as "very simple", separated by spaces. If there are no such problems, output must contain a single integer 0 (zero).
Sample Input
4 4
1 1 1 2
5 900 21 40
10 10 9 10
3 4 3 5
Sample Output
3
Source
Northeastern Europe 2002, Far-Eastern Subregion
N개의 심사위원, P문제, 각 심사위원은 매 문제에 대해 평점을 한다.단일 심사위원에게 있어서 만약에 그의 평점 중의 최고점 제목이 이 심사위원이 인정하는'가장 어려운 제목'으로 간주된다면, 그의 평점 중의 최저점 제목은 이 심사위원이 인정하는'가장 간단한 제목'으로 간주된다.매 문제에 대해 심사위원이'가장 어려운 제목'으로 평가하지 않고 과반수가 넘는 심사위원이'가장 간단한 제목'으로 평가하지 않으면 이는'매우 간단한 제목'으로 여겨질 수 있다.이제'매우 간단한 제목'의 제목 번호를 출력해 주십시오. (이것은 은밀한 정보입니다. 심사위원이 제목에 대한 평가 순서에 따라 결정됩니다. 제목 번호는 1부터입니다.) 그리고 빈칸으로 간격을 두십시오.
이 문제는 제목을 오랫동안 보았습니다. 처음에 제목을 잘못 보았기 때문에 Description은 이해했습니다. 그러나 Input와 Output의 설명이 잘 보이지 않아서 예시를 계속 이해하지 못했습니다. Description을 여러 번 보았지만 Input와 Output의 내용을 자세히 연구하지 못해 두 시간 동안 저를 괴롭혔습니다(T_T).
참고 사항:
1) 문제를 자세히 보면 Description, Input, Output뿐만 아니라 모두 자세히 보아야 한다.
코드(1AC):
#include <cstdio>
#include <cstdlib>
#include <cstring>
int N, P;
int arr[110];
int easy[110];
int hard[110];
int main(void){
int i, j;
int tmp, flag;
int min, max;
while (scanf("%d%d", &N, &P) != EOF){
memset(easy, 0, sizeof(easy));
memset(hard, 0, sizeof(hard));
for (i = 0; i < N; i++){
min = 10000;
max = -1;
for (j = 0; j < P; j++){
scanf("%d", &arr[j]);
if (min > arr[j]){
min = arr[j];
}
if (max < arr[j]){
max = arr[j];
}
}
for (j = 0; j < P; j++){
if (arr[j] == min){
easy[j]++;
}
if (arr[j] == max && !hard[j]){
hard[j] = 1;
}
}
}
/* for (i = 0; i < P; i++){
printf("%d ", hard[i]);
}
printf("
");
for (i = 0; i < P; i++){
printf("%d ", easy[i]);
}
printf("
");*/
flag = 0;
for (i = 0; i < P; i++){
if (easy[i] > N / 2 && hard[i] == 0){
if (flag){
printf(" ");
}
printf("%d", i + 1);
flag = 1;
}
}
if (flag == 0){
printf("0
");
}
else{
printf("
");
}
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[SwiftUI]List화한 CoreData를 가로 스와이프로 행 삭제하는 방법상당히 조사했지만 일본어 자료가 없었기 때문에 비망록으로 남겨 둔다. 아래와 같이 CoreData를 참조한 리스트를 가로 스와이프로 삭제하고 싶었다. UI 요소뿐만 아니라 원본 데이터 당 삭제합니다. 잘 다른 페이지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.