2950 突击考试

2950 突击考试

 

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
 
 
题目描述 Description

一日,教授决定进行一次突击考试。每个人都有一个考试等级,教室里面一共有N个课桌,按照顺序排成一列,每个课桌可以坐两个人,记他们的能力等级为(A[i],B[i])。现在教授决定对能力等级为K的人进行测验。他会从这N排中选择连续的L排进行测验,要求这L排中的每一排至少有一个人考试等级为K。现在我们想知道L的最大值以及对应的等级K。

输入描述 Input Description

第1行:1个整数,N

 第2..N+1行:每行2个整数,表示A[i],B[i]

输出描述 Output Description

第1行:2个整数,L,K,要求在L最大的条件下K最小。

样例输入 Sample Input

 3

 3  5

 4  5

 1  3

样例输出 Sample Output

2  5

数据范围及提示 Data Size & Hint

1≤N≤100000,1≤A[i],B[i]≤5

分类标签 Tags 

#include<cstdio>
#include<iostream>
using namespace std;
struct node{
    int x;int y;
}e[110000];
int main(){
    int n,k,ans=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d%d",&e[i].x,&e[i].y);
    }
    for(int i=1;i<=5;i++){//1≤A[i],B[i]≤5
        int t=0;
        for(int j=1;j<=n;j++){
            if(e[j].x==i||e[j].y==i) t++;//枚举 
            else t=0;
            if(t>ans){//保存当前最优方案 
                ans=t;
                k=i;
            }
        }
    }
    printf("%d %d
",ans,k);
    return 0;
}
原文地址:https://www.cnblogs.com/shenben/p/5517174.html