题解 P1702 【突击考试】
zltsg
·
·
题解
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int a[100010],b[100010],c[100010],d[100010];
int main()
{
int n,i,m,sum=0,k=10;
cin>>n;
for(i=1;i<=n;i++)
scanf("%d%d",&a[i],&b[i]);
c[1]=1;d[1]=1;
for(i=2;i<=n;i++)
{
if(a[i]==a[i-1])c[i]=c[i-1]+1;
if(a[i]==b[i-1])c[i]=max(d[i-1]+1,c[i]);
if(b[i]==b[i-1])d[i]=d[i-1]+1;
if(b[i]==a[i-1])d[i]=max(c[i-1]+1,d[i]);
if(c[i]==0)c[i]=1;
if(d[i]==0)d[i]=1;
}
for(i=1;i<=n;i++)
{
if(c[i]>sum){sum=c[i];k=a[i];}
else if(c[i]==sum&&a[i]<k)k=a[i];
if(d[i]>sum){sum=d[i];k=b[i];}
else if(d[i]==sum&&b[i]<k)k=b[i];
}
printf("%d %d",sum,k);
return 0;
}