기본 콘텐츠로 건너뛰기

[BOJ 2876]숨은 조건을 파악하기

채점한 학생의 점수가 모두 같다는 말에는, 책상이 연속적으로 위치해있어야한다는 조건이 숨어있다.


#include <cstdio>
#include <vector>
using namespace std;
int main(void)
{
vector<int> A;
vector<int> B;
int N;
scanf("%d",&N);
for (int i=0;i<N;i++){
int inputA,inputB;
scanf("%d %d",&inputA,&inputB);
A.push_back(inputA);
B.push_back(inputB);
}
int min_grade =0;
int max_len = -10001;
for (int grade=1;grade<=5;grade++){
int len = 0;
for (int i=0;i<N;i++){
if (grade == A[i] || grade == B[i])
len++;
else len=0;
if (len > max_len)
{
max_len = len;
min_grade = grade;
}
}
}
printf("%d %d",max_len,min_grade);
}
view raw [BOJ 2876] hosted with ❤ by GitHub

댓글

이 블로그의 인기 게시물

Tree traversal의 3가지

1. 전위 순회 (Preorder Traversal) Root -> Left Tree -> Right Tree   ( 루트를 제일 처음에 방문 ) 2. 중위 순회 (Inorder Traversal) Left Tree -> Root -> Right Tree   ( 루트를 중간에 방문 ) 3. 후위 순회 (Postorder Traversal) Left Tree -> Right Tree -> Root   ( 루트를 제일 마지막에 방문 ) <소스코드> 출처 : http://www.geeksforgeeks.org/tree-traversals-inorder-preorder-and-postorder /// C program for different tree traversals #include <stdio.h> #include <stdlib.h> /* A binary tree node has data, pointer to left child    and a pointer to right child */ struct node {      int data;      struct node* left;      struct node* right; }; /* Helper function that allocates a new node with the    given data and NULL left and right pointers. */ struct node* newNode(int data) {      struct node* node = (struct node*)                 ...