(Jizhong) 2200. [Training] jogos de cartas GDKOI (cartão) [gananciosos]

(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
B e s s Eu e Bessie é 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, B e s s Eu e Bessie ainda pode escolher a forma de ganhar.
B e s s Eu e Bessie e sua amiga Elsie jogando um jogo de cartas simples, eles têm que pagar uma 2 n 2N cartões de cartões, números digitais do cartão está 1 - 2 n 1- 2N , e são divididos em dois, para um cartão de B e s s Eu e Bessie e um cartão de E eu s Eu e Elsie .
Então eles começaram a jogar cartas, um total de conduta n n roda, em cada ronda, B e s s Eu e Bessie E eu s Eu e Elsie estão jogando um cartão, os cartões que têm um grande pontos.
mágica B e s s Eu e Bessie pode ser previsto E eu s Eu e Elsie sequência de cartões, e semelhantes, como na conquista. certificar-se B e s s Eu e Bessie o número máximo de pontos podem ser ganhos.


Digite
a primeira linha um inteiro N ( 1 N 50 , 000 ) N (1≤N≤50,000) .
O próximo N N linha é E eu s Eu e Elsie para completar os cartões de jogo contínuas. Por favor, note que é fácil de determinar a partir da informação B e s s Eu e Bessie cartão.

Saída de
linha é dada B e s s Eu e Bessie 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 2 , 3 , 5 2,3,5 , de acordo com ela 2 , 3 , 5 2,3,5 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);
}
Publicado 119 artigos originais · ganhou elogios 8 · vista 4912

Acho que você gosta

Origin blog.csdn.net/kejin2019/article/details/104975652
Recomendado
Clasificación