(ファイルIO):入力:card.in出力:card.out
制限時間:1000msのスペースの制約:262144キロバイトの特定の制限
後藤ProblemSet
タイトル説明
、彼女が親指ませんでしたが、非常に多くのカード牛のようなものですが、彼女はトランプの愛とほぼ強迫観念を持っています。残念ながら、群れの他の牛が良い相手ではありません。彼らのレベルは本当に悪いです。彼らはカードをプレイするために、完全に予測可能な方法で常にあります!それにもかかわらず、
まだ勝つためにどのように選択することができます。
との単純なカードゲームをプレイする彼女の友人エルシーは、彼らは、有料aに持っています
カードカード、デジタル数字のカードがあるに
、及びカードに2つに分割され
とカードへ
。
その後、彼らは、行動の合計をカードをプレイし始めました
ホイール、各ラウンドにおいて、
和
、大きなポイントを持っているカードをカードをプレイしています。
マジック
予測することができ
カードの順序、および勝利のようにのように。確認してください
ポイントの最大数を獲得することができます。
入力
整数最初の行を
。
次
ラインです
連続ゲームカードを四捨五入します。情報から決定することは容易であることに注意してください
カード。
出力
ラインが与えられています
点の最大数を獲得することができます。
サンプル入力
。3
。1
。6
。4
サンプル出力
2
データ範囲の制限
ヒント
カードのベッシーの手があります
、彼女によると、
シーケンシャル2ポイントカードを得ることができます。
問題解決のアイデアを
貪欲。
天智の馬の原則で、2つの整然としたキューを準備します。
コード
#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);
}