oj2401 : 물 문제

질문도
모두 얼마나 비싼 것을 도시 알고있는 마을에 살고 각 사람을. 도시에 살고있는 모든 사람은 모든 마을에 얼마나 비싼 것을 알고있다. 앨리는 메이크업 돈에 이러한 관찰을 사용하기로 결정했다. 그녀는, 싼 물건을 구입 장소의 반대 유형에 갈 수있는 도시 나 마을에서 시작됩니다 (그녀가 도시에서 시작하는 경우, 그것은 마을, 또는 마을에서 시작하는 경우, 그것은 도시), 그럼 돈 판매 알아, 그래서 다음 새로운 장소 뭔가 (또는 물건의 반대 유형)을 구입합니다. 그녀는 곧 그녀가 그들을 속이는 된 방법, 주민들이 생각하는 도시 나 마을을 떠나 그녀가 두 번 같은 장소에 갈 수 있도록, 그녀의 화가였다. 받을 것이다이 전략을 사용하는 경우 엘리 그녀는 실제 수익을 예측할 수 없습니다. 그래서 그녀는 많은 장소로 이동하기로 결정했다. 물론, 그녀는 농촌에 대한 액세스를 전환하고 도시를 방문,하지만 그녀는 두 번 같은 장소를 방문 할 수 있어야합니다. 이 시스템은 엘리 접근 가능한 모든 위치를 설명하는 문자열의 위치를 제공합니다. 도시는 "C"에 대한, 경우 i 번째 장소, 마을, i 번째 문자 "V"의 경우. 규칙에 따르면, 그녀는 액세스 할 수있는 사이트의 가장 큰 수를 반환합니다.
입력
된 데이터의 다수의 세트.
데이터의 각 세트 (100)의 길이 (1)의 문자열만을 'V'및 'C'자 두.
출력
샘플은 입력
원시
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