a53

Grexy300

a53
Nov 20th, 2017
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.58 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define MOD 666013
  3. using namespace std;
  4.  
  5. class InParser
  6. {
  7. private:
  8. FILE *fin;
  9. char *buff;
  10. int sp;
  11. char read_ch()
  12. {
  13. ++sp;
  14. if(sp==4096)
  15. {
  16. sp=0;
  17. fread(buff,1,4096,fin);
  18. }
  19. return buff[sp];
  20. }
  21.  
  22. public:
  23. InParser(const char* nume)
  24. {
  25. fin=fopen(nume,"r");
  26. buff=new char[4096]();
  27. sp=4095;
  28. }
  29. InParser& operator >> (int &n)
  30. {
  31. char c;
  32. while(!isdigit(c=read_ch())&&c!='-');
  33. int sgn=1;
  34. if (c=='-')
  35. {
  36. n=0;
  37. sgn=-1;
  38. }
  39. else
  40. {
  41. n=c-'0';
  42. }
  43. while(isdigit(c=read_ch()))
  44. {
  45. n=10*n+c-'0';
  46. }
  47. n*=sgn;
  48. return *this;
  49. }
  50.  
  51. InParser& operator >> (long long &n)
  52. {
  53. char c;
  54. n=0;
  55. while(!isdigit(c=read_ch())&&c!='-');
  56. long long sgn=1;
  57. if(c=='-')
  58. {
  59. n=0;
  60. sgn=-1;
  61. }
  62. else
  63. {
  64. n=c-'0';
  65. }
  66. while(isdigit(c=read_ch()))
  67. {
  68. n=10*n+c-'0';
  69. }
  70. n*=sgn;
  71. return *this;
  72. }
  73. };
  74.  
  75. class OutParser {
  76. private:
  77. FILE *fout;
  78. char *buff;
  79. int sp;
  80.  
  81. void write_ch(char ch) {
  82. if (sp == 50000) {
  83. fwrite(buff, 1, 50000, fout);
  84. sp = 0;
  85. buff[sp++] = ch;
  86. } else {
  87. buff[sp++] = ch;
  88. }
  89. }
  90.  
  91.  
  92. public:
  93. OutParser(const char* name) {
  94. fout = fopen(name, "w");
  95. buff = new char[50000]();
  96. sp = 0;
  97. }
  98. ~OutParser() {
  99. fwrite(buff, 1, sp, fout);
  100. fclose(fout);
  101. }
  102.  
  103. OutParser& operator << (int vu32) {
  104. if (vu32 <= 9) {
  105. write_ch(vu32 + '0');
  106. } else {
  107. (*this) << (vu32 / 10);
  108. write_ch(vu32 % 10 + '0');
  109. }
  110. return *this;
  111. }
  112.  
  113. OutParser& operator << (long long vu64) {
  114. if (vu64 <= 9) {
  115. write_ch(vu64 + '0');
  116. } else {
  117. (*this) << (vu64 / 10);
  118. write_ch(vu64 % 10 + '0');
  119. }
  120. return *this;
  121. }
  122.  
  123. OutParser& operator << (char ch) {
  124. write_ch(ch);
  125. return *this;
  126. }
  127. OutParser& operator << (const char *ch) {
  128. while (*ch) {
  129. write_ch(*ch);
  130. ++ch;
  131. }
  132. return *this;
  133. }
  134. };
  135.  
  136. InParser fin("grexy.in");
  137. OutParser fout("grexy.out");
  138.  
  139. int n, x;
  140. long long tot[100003], nup[100003];
  141.  
  142. int main()
  143. {
  144. int i;
  145. tot[1]=26;
  146. tot[2]=26*26;
  147. nup[1]=0;
  148. nup[2]=650;
  149. for(i=3;i<=100000;++i)
  150. {
  151. if(i%2)
  152. nup[i]=(nup[i-1]*26)%MOD;
  153. else
  154. nup[i]=(tot[i/2]*(tot[i/2]-1))%MOD;
  155. tot[i]=(tot[i-1]*26)%MOD;
  156. }
  157. fin>>n;
  158. for(i=1; i<=n; ++i)
  159. {
  160. fin>>x;
  161. fout<<nup[x]<<'\n';
  162. }
  163. return 0;
  164. }
Add Comment
Please, Sign In to add comment