oj2401:水の問題

質問は尋ねた
すべての都市でどのように高価なものを知っている村に生きる一人一人を。都市に住んでいる誰もが、すべての村でどのように高価なものを知っています。アリーは、お金を稼ぐためにこれらの観察を使用することにしました。彼女は、安いものを買う場所の反対のタイプに行く街や村、で起動します(彼女は街で開始する場合、それは村である、またはあなたが村で開始した場合、それが都市である)、そしてどこマネー販売アウト、など、何か(または物の反対のタイプ)次の新しい場所を買います。彼女はすぐに彼女がそれらを欺いたか、住民が実感都市や村を去り、彼女は二度同じ場所に行くことができないので、彼女と怒っていました。受け取ることになりますこの戦略を使用しているときエリー彼女は、実際の利益を予測することはできません。そこで彼女は、ちょうど多くの場所と行くことにしました。もちろん、彼女は地方へのアクセスの切り替えや都市を訪問するが、彼女は二度同じ場所を訪れることができませんでしなければなりません。システムは、エリーアクセスできるすべての場所を記述した、文字列の位置を提供します。市は「C」のために、ある場合には、i番目の場所は、村、i番目の文字「V」である場合。規則によると、彼女はアクセスすることができるサイトの最大数を返します。
入力
データの複数のセット。
データの各セットは100に長さ1のストリング、およびのみ「V」と「C」の2つの文字です。
出力は、
サンプル入力

CVVVC
VVV
VVVVCVV
CVCVCVC
V
サンプル出力

5
1
3
7
1
農村- -都市-農村の交流を前後していくつかの都市までに尋ねたタイトルは、市内に行く人が必要です。
市は、都市部と農村部の少なくとも数、判定条件に関連する最大に行くことができますので
两个数字之间关系
N N + 1と最大値2N + 1;
nおよびnは最大2N、
N + S(任意の数)およびN、2N + 1の最大値は、
0デジタルである場合、最大値は唯一のものです。

if (c == 0 || v == 0)
            ans = 1;
        else if (c == v)
            ans = 2 * v;
        else if (c >= v + 1)
            ans = 2 * v + 1;

完全なコード

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<math.h>
#include<stdio.h>
#include<string.h>
using namespace std;
int main(void)
{
    string str;
    string a[110];
    int c, v,ans ,t;
    while (cin >> str)
    {
        ans = 0;
        c = 0, v = 0;
        for (int i = 0; i < str.size(); i++)
            if (str[i] == 'C')
                c++;
            else
                v++;
        if (c <= v)
        { 
            t = v;
            v = c;
            c = t;
        }
        if (c == 0 || v == 0)
            ans = 1;
        else if (c == v)
            ans = 2 * v;
        else if (c >= v + 1)
            ans = 2 * v + 1;
        cout << ans << endl;
    }
    return 0;
}
公開された38元の記事 ウォン称賛27 ビュー3190

おすすめ

転載: blog.csdn.net/qq_45891413/article/details/104803695
おすすめ