fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <ctime>
  4. #include <cstdlib>
  5.  
  6. #define NMAX 4000
  7.  
  8. typedef unsigned char uchar;
  9. typedef unsigned int uint;
  10.  
  11. uchar matrix[NMAX][NMAX];
  12.  
  13. void
  14. minit(int n)
  15. {
  16. for(int i = 0; i < n; i++)
  17. for(int j = 0; j < n; j++)
  18. if(n < 100)
  19. matrix[i][j] = rand()%2;
  20. else if(n < 1000 && rand()%3 == 0)
  21. matrix[i][j] = 1;
  22. else if(rand()%4 == 0)
  23. matrix[i][j] = 1;
  24. else
  25. matrix[i][j] = 0;
  26. }
  27.  
  28. void
  29. mprint(int n)
  30. {
  31. char bit;
  32. std::cout << n << '\n';
  33. for(int i = 0; i < n; i++) {
  34. for(int j = 0; j < n; j++) {
  35. bit = matrix[i][j] + '0';
  36. std::cout << bit;
  37. }
  38. std::cout << '\n';
  39. }
  40. }
  41.  
  42. uint
  43. msquareones(int n)
  44. {
  45. uint item, ones;
  46. ones = 0U;
  47. for(int i = 0; i < n; i++)
  48. for(int j = 0; j < n; j++) {
  49. item = 0U;
  50. for(int k = 0; k < n; k++)
  51. item ^= matrix[i][k] & matrix[k][j];
  52. ones += item;
  53. }
  54. return ones;
  55. }
  56.  
  57. int
  58. main(int argc, char *argv[])
  59. {
  60. int n;
  61.  
  62. srand(time(NULL));
  63. for(int i = 1; i < argc; i++) {
  64. n = std::stoi(std::string(argv[i]));
  65. if(n < 0)
  66. n = 2;
  67. if(n > NMAX)
  68. n = NMAX;
  69. minit(n);
  70. mprint(n);
  71. std::cout << msquareones(n) << '\n';
  72. }
  73. return 0;
  74. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp: In function 'int main(int, char**)':
prog.cpp:64:7: error: 'stoi' is not a member of 'std'
   n = std::stoi(std::string(argv[i]));
       ^
stdout
Standard output is empty