HDU 2100 분류:ACM 2015-06-17 23:49 15 명 댓 글 읽 기(0)모음 집
6196 단어 ACM
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6721 Accepted Submission(s): 2186
Problem Description
XYZ-26 진수 는 한 자리 당 대문자 숫자 다.A,B,C,...,X,Y,Z 는 각각 0~25 의 숫자 를 차례대로 대표 하고 n 자리 의 26 진수 가 10 진법 으로 바 뀌 는 규칙 은 다음 과 같다.
A0A1A2A 3...An-1 의 모든 대표 숫자 는 a0a1a 3...an-1 이 고 이 XYZ-26 진수 의 10 진수 값 은
m = a0 * 26^(n-1) + a1 * 26^(n-2) + … + an-3* 26^2 + an-2*26 + an-1
어느 날 에 vivi 는 갑자기 로맨틱 한 놀 이 를 하기 시 작 했 습 니 다.학교의 한 교실 에 숨 어 단풍나무 얼음 잎 을 찾 으 라 고 했 습 니 다.물론 그녀 도 단풍나무 얼음 잎 이 길 치 가 아니 라 는 것 을 알 고 XYZ 의 새우 와 수역 의 방탕아 의 도움 을 받 았 습 니 다.그들 은 vivi 가 숨 어 있 는 교실 입구 에 각각 XYZ-26 진수,각각 a 와 b 라 고 쓰 고 자물쇠 에 비밀 번 호 를 설 치 했 습 니 다.비밀 번 호 를 찾 아야 자 물 쇠 를 열 고 교실 로 순조롭게 들 어 갈 수 있 음 이 분명 하 다.이 비밀 번 호 는 XYZ 의 멤버 들 에 의 해 love key 라 고 불 린 다.다행히도 단풍 얼음 잎 은 러 브 키 가 a 의 10 진수 와 b 의 10 진수 와 의 XYZ-26 진수 형식 이라는 것 을 알 고 있 었 다.물론 새우 와 수역 의 파도 도 단풍 얼음 잎 을 어렵 게 하고 싶 지 않 기 때문에 a 와 b 의 자릿수 는 200 위 를 넘 지 않 을 것 이다.
예 를 들 어 1 조 테스트 데이터
a = 0 * 26^5+0* 26^4+ 0* 26^3+ 0 *26^2 + 3*26 + 7 = 85
b = 1*26^2 + 2*26 + 4 = 732
a+b=817=BFL
Input
제목 은 여러 그룹의 테스트 데이터 가 있다.
각 그룹의 테스트 데 이 터 는 두 개의 값 이 모두 XYZ-26 진수 가 포함 되 어 있 으 며,각 숫자의 한 자 리 는 대문자 만 포함 되 어 있 으 며,각 숫자 는 200 자 리 를 초과 하지 않 습 니 다.
Output
XYZ 를 출력 하 는 lovekey 는 각 그룹의 출력 이 한 줄 을 차지 합 니 다.
Sample Input
AAAADH BCE
DRW UHD
D AAAAA
Sample Output
BFL
XYZ
D
#include
#include
#include
#include
#include
#include
using namespace std;
#define N 215
char a[N],b[N],c[N];
void reverse(char a[])
{
int len=strlen(a);
for(int i=0;i
swap(a[i],a[len-i-1]);
}
}
int main()
{
while(~scanf("%s%s",a,b))
{
int len_a=strlen(a);
int len_b=strlen(b);
reverse(a);
reverse(b);
int jin=0;
for(int i=0;i
// cout< if(a[i]=='\0')
{
// printf("aaaaajin=%d",jin);
if(jin)
{
c[i]=b[i]-'A'+1;
jin=0;
if(c[i]>=26)
{
if(i==max(len_a,len_b)-1)
{
c[i]=c[i]-26+'A';
c[i+1]='B';
c[i+2]=0;
}
else
{
c[i]=c[i]-26+'A';
jin=1;
}
}
else
{
c[i]=c[i]+'A';
}
}
else
{
c[i]=b[i];
jin=0;
}
}
else if(b[i]=='\0')
{
// printf("bbbbbjin=%d",jin);
if(jin)
{
c[i]=a[i]-'A'+1;
jin=0;
if(c[i]>=26)
{
if(i==max(len_a,len_b)-1)
{
c[i]=c[i]-26+'A';
c[i+1]='B';
c[i+2]=0;
}
else
{
c[i]=c[i]-26+'A';
jin=1;
}
}
else
{
c[i]=c[i]+'A';
}
}
else
{
c[i]=a[i];
jin=0;
}
}
// printf("%c %c %c",a[i],b[i],jin);
else {
// printf("%c %c",a[i],b[i]);
c[i]=a[i]+b[i]+jin-'A'*2;
// printf(" * %d ",c[i]);
jin=0;
if(c[i]>=26)
{
if(i==max(len_a,len_b)-1)
{
c[i]=c[i]-26+'A';
c[i+1]='B';
c[i+2]=0;
}
else
{
c[i]=c[i]-26+'A';
jin=1;
// printf("jin=%d",jin);
}
}
else
c[i]=c[i]+'A';
// printf(" # %d %c",c[i],c[i]);
}
}
for(int i=strlen(c)-1;i>0;i--)
{
if(c[i]=='A')
c[i]='\0';
else
{
break;
}
}
reverse(c);
cout<
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
}
return 0;
}
저작권 성명:본 고 는 블 로 거들 이 창작 한 글 로 블 로 거들 의 허락 없 이 전재 할 수 없다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ACM - 계산 기하학 적 Pick - up sticks -- poj 2653Description Stan has n sticks of various length. The data for each case start with 1 <= n <= 100000, the number of stick...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.