标签:模拟
Problem Description
As one of the most powerful brushes, zhx submits a lot of code on many oj and most of them got AC.
One day, zhx wants to count how many submissions he made on
n![技术分享]()
ojs. He knows that on the
i
th![技术分享]()
![技术分享]()
oj, he made
a
i![技术分享]()
![技术分享]()
submissions. And what you should do is to add them up.
To make the problem more complex, zhx gives you
n
B?base![技术分享]()
numbers and you should also return a
B?base![技术分享]()
number to him.
What‘s more, zhx is so naive that he doesn‘t carry a number while adding. That means, his answer to
5+6![技术分享]()
in
10?base![技术分享]()
is
1![技术分享]()
.
And he also asked you to calculate in his way.
Input
Multiply test cases(less than
1000![技术分享]()
).
Seek
EOF![技术分享]()
as the end of the file.
For each test, there are two integers
n![技术分享]()
and
B![技术分享]()
separated by a space. (
1≤n≤100![技术分享]()
,
2≤B≤36![技术分享]()
)
Then come n lines. In each line there is a
B?base![技术分享]()
number(may contain leading zeros). The digits are from
0![技术分享]()
to
9![技术分享]()
then from
a![技术分享]()
to
z![技术分享]()
(lowercase).
The length of a number will not execeed 200.
Output
For each test case, output a single line indicating the answer in
B?base![技术分享]()
(no
leading zero).
Sample Input
2 3
2
2
1 4
233
3 16
ab
bc
cd
Sample Output
Problem Description
As one of the most powerful brushes, zhx submits a lot of code on many oj and most of them got AC.
One day, zhx wants to count how many submissions he made on
n![技术分享]()
ojs. He knows that on the
i
th![技术分享]()
![技术分享]()
oj, he made
a
i![技术分享]()
![技术分享]()
submissions. And what you should do is to add them up.
To make the problem more complex, zhx gives you
n
B?base![技术分享]()
numbers and you should also return a
B?base![技术分享]()
number to him.
What‘s more, zhx is so naive that he doesn‘t carry a number while adding. That means, his answer to
5+6![技术分享]()
in
10?base![技术分享]()
is
1![技术分享]()
.
And he also asked you to calculate in his way.
Input
Multiply test cases(less than
1000![技术分享]()
).
Seek
EOF![技术分享]()
as the end of the file.
For each test, there are two integers
n![技术分享]()
and
B![技术分享]()
separated by a space. (
1≤n≤100![技术分享]()
,
2≤B≤36![技术分享]()
)
Then come n lines. In each line there is a
B?base![技术分享]()
number(may contain leading zeros). The digits are from
0![技术分享]()
to
9![技术分享]()
then from
a![技术分享]()
to
z![技术分享]()
(lowercase).
The length of a number will not execeed 200.
Output
For each test case, output a single line indicating the answer in
B?base![技术分享]()
(no
leading zero).
Sample Input
2 3
2
2
1 4
233
3 16
ab
bc
cd
Sample Output
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
#include<set>
#include<map>
#define L(x) (x<<1)
#define R(x) (x<<1|1)
#define MID(x,y) ((x+y)>>1)
typedef __int64 ll;
#define fre(i,a,b) for(i = a; i <b; i++)
#define mem(t, v) memset ((t) , v, sizeof(t))
#define sf(n) scanf("%d", &n)
#define sff(a,b) scanf("%d %d", &a, &b)
#define sfff(a,b,c) scanf("%d %d %d", &a, &b, &c)
#define pf printf
#define bug pf("Hi\n")
using namespace std;
#define INF 0x3f3f3f3f
#define N 1001
#define mod 1000000007
char a[300];
int ans[N];
int main()
{
int i,j,n,b;
int ma;
while(~sff(n,b))
{
mem(ans,0);
ma=0;
while(n--)
{
scanf("%s",a);
int k=0;
int len=strlen(a);
ma=max(ma,len);
for(i=len-1;i>=0;i--)
{
int te;
if(a[i]>='0'&&a[i]<='9') te=a[i]-'0';
else te=a[i]-'a'+10;
ans[k]=(ans[k]+te)%b;
k++;
}
}
int i=ma-1;
while(ans[i]==0&&i>=0) i--;
if (i<0)pf("0"); // 坑爹的地方
for(;i>=0;i--)
if(ans[i]<10)
printf("%d",ans[i]);
else
printf("%c",ans[i]-10+'a');
printf("\n");
}
return 0;
}
HDU 5186 zhx's submissions (进制转换)
标签:模拟
原文地址:http://blog.csdn.net/u014737310/article/details/44265843