(File IO): Entrada: card.in saída: card.out
limite de tempo: 1000 ms restrições de espaço: restrições específicas 262144 KB
Goto ProblemSet
título Descrição
é muito parecido com um vacas cartão, embora ela não fez polegar, mas ela tem uma quase obsessão com o amor de cartas de jogar. Infelizmente, outro gado no rebanho não são bom adversário. O seu nível é muito ruim. Eles estão sempre de uma maneira completamente previsível para jogar cartas! No entanto,
ainda pode escolher a forma de ganhar.
e sua amiga Elsie jogando um jogo de cartas simples, eles têm que pagar uma
cartões de cartões, números digitais do cartão está
, e são divididos em dois, para um cartão de
e um cartão de
.
Então eles começaram a jogar cartas, um total de conduta
roda, em cada ronda,
和
estão jogando um cartão, os cartões que têm um grande pontos.
mágica
pode ser previsto
sequência de cartões, e semelhantes, como na conquista. certificar-se
o número máximo de pontos podem ser ganhos.
Digite
a primeira linha um inteiro
.
O próximo
linha é
para completar os cartões de jogo contínuas. Por favor, note que é fácil de determinar a partir da informação
cartão.
Saída de
linha é dada
pode marcar o número máximo de pontos.
entrada da amostra
. 3
. 1
. 6
. 4
Exemplo de saída
2
limite de intervalo de dados
Dica
Bessie mãos de cartões são
, de acordo com ela
2 pontos sequenciais cartões podem ser obtidos.
Resolução de problemas idéias
ganancioso.
Prepare duas filas ordenadas, com o princípio do cavalo de Tian Ji.
código
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;
int n,m,a[100010],b[50010],c[50010],x,ans,k,k1,j;
int main(){
freopen("card.in","r",stdin);
freopen("card.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
a[x]=1;
}
k=0,k1=0;
for(int i=1;i<=n*2;i++)
if(!a[i])
b[++k]=i;
else
c[++k1]=i;
j=1,ans=0;
for(int i=1;i<=n;i++)
{
if(c[j]<b[i])
{
j++;
ans++;
if(j>n)
{
printf("%d",ans);
return 0;
}
}
}
printf("%d",ans);
}