oj2401: problème de l'eau

Questions posées
chaque personne à vivre dans le village savons tous comment les choses chères dans la ville. Tout le monde vivant dans la ville savons tous comment les choses chères du village. Allie a décidé d'utiliser ces observations à faire de l' argent. Elle va commencer dans une ville ou un village, où acheter des choses pas cher, allez au type de lieu opposé (si elle est de commencer dans la ville, il est un village, ou si vous commencez dans le village, il est de la ville), puis où la vente de l' argent , vous pouvez acheter quelque chose suivante nouveau lieu (ou le type de chose en face), et ainsi de suite. Elle quitta bientôt la ville ou le village, les habitants se rendent compte comment elle les trompait et était en colère contre elle, alors elle ne peut pas aller au même endroit deux fois. Elly , elle ne peut pas prédire le bénéfice réel lors de l' utilisation de cette stratégie recevra. Elle a donc décidé d'aller juste comme beaucoup d' endroits. Bien sûr, elle doit passer entre l' accès aux zones rurales et visiter la ville, mais elle ne pouvait pas visiter le même endroit deux fois. Le système vous donnera une position de chaîne, décrivant tous les lieux accessibles Elly. Si le i-ème place est le village, le i-ème caractère « V », si la ville est, pour le « C ». Selon les règles, elle retourne le plus grand nombre de sites accessibles.
Entrée de
multiples ensembles de données.
Chaque ensemble de données est une chaîne d' une longueur de 1 à 100, et seul le « V » et « C » deux caractères.
La sortie de
l'échantillon de l'entrée
Raw
CVVVC
VVV
VVVVCVV
CVCVCVC
V
l'échantillon de la sortie
brute
5
1
3
7
1
titre exige une personne pour aller à la ville - rural - urbain - retour rural alternatif et en arrière et a demandé jusqu'à plusieurs villes.
Parce que la ville peut aller à un maximum associé au moins nombre de zones urbaines et rurales, où les conditions de jugement
两个数字之间关系 .
n n + 1 et une valeur maximale 2n + 1;
n et n 2N maximale;
n + S (un nombre arbitraire) et la valeur maximale de n 2n + 1;
si 0 , qui est numérique, la valeur maximale est seulement une.

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

Le code complet

#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;
}
Publié 38 articles originaux · a gagné les éloges 27 · vues 3190

Je suppose que tu aimes

Origine blog.csdn.net/qq_45891413/article/details/104803695
conseillé
Classement