1. 程式人生 > >洛谷 P1702 突擊考試

洛谷 P1702 突擊考試

一個 scanf sticky adg -s %d font 最大值 data-

P1702 突擊考試

題目描述

一日,老師決定進行一次突擊考試。已知每個學生都有一個考試能力等級,教室裏一共有N個課桌,按照順序排成一列,每張課桌可以坐兩個人,第i張課桌坐的兩個人的能力等級為(A[i],B[i])。現在老師決定對能力等級為K的人進行測驗。他會從這N排中選擇連續的L排進行測驗,要求這 L排中的每一排至少有一個人考試能力等級為K。現在我們想知道L的最大值以及對應的等級K。

輸入輸出格式

輸入格式:

第1行:一個整數N;

第2..N+1行:每行兩個整數,表示A[i],B[i]。

輸出格式:

兩個整數L和K,要求在L最大的條件下K最小。

輸入輸出樣例

輸入樣例#1: 復制
3
3 5
4 5
1 3
輸出樣例#1: 復制
2 5

說明

1≤N≤100,000,1≤A[i],B[i]≤5

思路:a[i],b[i]最大都均為5,所以可以模擬。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define MAXN 100010
using namespace std;
int n,pos,maxn;
int a[MAXN],b[MAXN];
int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d%d",&a[i],&b[i]); for(int k=1;k<=5;k++){ int s=0; for(int i=1;i<=n;i++){ if(a[i]==k||b[i]==k) s++; if(a[i]!=k&&b[i]!=k){ if(s>=maxn){ maxn=s; pos=k; } s
=0; } } if(s>maxn){ maxn=s; pos=k; } } printf("%d %d",maxn,pos); }

洛谷 P1702 突擊考試