문제에 OCAC 여름 두 번째 게임 타이틀 H 플립 디지털 솔루션

디지털 플립
원래 제목 링크를 : HTTP를 : //codeforces.com/problemset/problem/514/A
[제목] 설명이
번호를 당신에게 제공, 당신은 당신이이 번호 a를 선택할 수 있습니다,이 그림 각각의 작업을 여러 번 작동 할 수 있습니다 t의 수에, t는 9-T로 변환됩니다.
22,27,72,77 : 예를 들어, 도면 부호 (27)는이 도면은 (물론, 연산의 수는 0 일 수있다) 단계 후에 얻어진 수를 변환 할 수 수회 작동을 제공한다.
당신은 당신이 얻은 최소한의 변환 결과 일 수있다, A의 번호를 찾을 필요가있다. (실시 예 77의 결과는 최소 개수가 22을 얻을 수있다).
[입력 형식
번호 A (1 <= A <= 입력 10 ^ 18).
[] 출력 포맷
출력이 최소를 나타내는 숫자는 변환의 결과 일 수있다.
참고 : 변환의 결과는 0으로 시작할 수 없습니다. 이것은 비트가 가장 많은 9 경우, 당신은 변환을 정렬 할 수 없음을 의미합니다.
샘플 입력 [1]
27
[출력 1] 샘플
22
[2] 샘플 입력
4545
[2] 샘플 출력
4444
[TITLE] 분석
에 의하여 - 온 경우 t> = 5 일 후, 상기도 t의 각각의 분석 비트 디지털 변환 -9- t이다.
최상위 비트는 숫자 9의 경우, 정렬은 변환 할 수 없습니다. 이 경우, 아날로그 문자열은 아주 쉽게된다.
다음 코드는 다음과 같습니다

#INCLUDE <비트 / stdc ++ H.> 
네임 스페이스를 사용하여 표준; 
CONST의 INT의 maxn = 100010; 

보이드 트랜스퍼 (문자 및 c) { 
    A = INT의 C - '0'; 
    경우 (a> = 5) = 9 - A는; 
    C = 0 + A; 
} 

문자열들; 

INT의 main () { 
    CIN >> S; 
    INT LEN = s.length (); 
    대해 INT (I = 0; I 렌 <; 내가 ++) { 
        (! 난들 && [I] < '9'|| 내가들 && [I]> = '5') 경우, 전송 (S [I]) ; 
    } 
    COUT << S << ENDL; 
    0을 반환; 
}

 

추천

출처www.cnblogs.com/ocac/p/11131660.html