Advertisement
Guest User

Untitled

a guest
May 29th, 2015
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. /*************************************************************************
  2. > File Name: A.cpp
  3. > Author: VOID_133
  4. > ###################
  5. > Mail: ###################
  6. > Created Time: 2015年04月21日 星期二 12时30分54秒
  7. ************************************************************************/
  8. #include<iostream>
  9. #include<algorithm>
  10. #include<cstdio>
  11. #include<vector>
  12. #include<cstring>
  13. #include<map>
  14. #include<queue>
  15. #include<stack>
  16. #include<string>
  17. #include<cstdlib>
  18. #include<ctime>
  19. #include<set>
  20. using namespace std;
  21. const int maxn=205;
  22. /*MACRO*/
  23. #define FORi(l,r) for(int i=(l);i<(r);i++)
  24. #define FORj(l,r) for(int j=(l);j<(r);j++)
  25. #define FORk(l,r) for(int k=(l);k<(r);k++)
  26. #define MEMSET0(i) memset((i),0,sizeof((i)))
  27. #define MEMSET1(i) memset((i),-1,sizeof((i)))
  28.  
  29. char numa[maxn];
  30. char res[maxn];
  31. char tab[]="0123456789abcdefghijklmnopqrstuvwxyz";
  32. int n,B;
  33. void print(char* p);
  34.  
  35. void add(char* na,char*resp)
  36. {
  37. int len=strlen(na);
  38. FORi(0,len)
  39. {
  40. na[maxn-1-(len-i-1)]=na[i];
  41. na[i]=0;
  42. }
  43. len = strlen(resp);
  44. FORi(0,len)
  45. {
  46. resp[maxn-len+i]=resp[i];
  47. resp[i]=0;
  48. }
  49. for(int i=maxn-1;na[i]!=0 || resp[i]!=0;i--)
  50. {
  51. int numa,numb;
  52. numa=na[i]>='a'?na[i]-'a'+10:na[i]-'0';
  53. if(resp[i] == 0) numb=0;
  54. else
  55. numb=resp[i]>='a'?resp[i]-'a'+10:resp[i]-'0';
  56. resp[i]=tab[(numa+numb)%B];
  57. }
  58. //Reverse
  59. int cnt=0;
  60. FORi(0,maxn)
  61. {
  62. if(resp[i])
  63. {
  64. len=maxn-i;
  65. break;
  66. }
  67. }
  68. // printf("len = %d\n",len);
  69. while(resp[maxn-cnt-1])
  70. {
  71. resp[len-cnt-1]=resp[maxn-cnt-1];
  72. resp[maxn-cnt-1]=0;
  73. cnt++;
  74. }
  75. //printf("%s\n",resp);
  76. // print(resp);
  77. return ;
  78. }
  79.  
  80. void print(char* p)
  81. {
  82. int len=strlen(p);
  83. bool inp=false;
  84. FORi(0,len)
  85. {
  86. if(p[i]!='0' && p[i]!=0)
  87. {
  88. inp=true;
  89. }
  90. if(inp) printf("%c",p[i]);
  91. }
  92. printf("\n");
  93. return ;
  94. }
  95.  
  96.  
  97. int main(void)
  98. {
  99. while(scanf("%d%d",&n,&B)!=EOF)
  100. {
  101. MEMSET0(res);
  102. MEMSET0(numa);
  103.  
  104. while(n--)
  105. {
  106. scanf("%s",numa);
  107. add(numa,res);
  108. }
  109. print(res);
  110. }
  111. return 0;
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement