fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define for1(i,m,n) for(int i=m,n_=(n);i<=n_;i++)
  5. #define for0(i,m,n) for(int i=m;i<n;i++)
  6. #define forr1(i,m,n) for(int i=m;i>=n;i--)
  7. #define forr2(i,m,n) for(int i=m;i>n;i--)
  8. #define mini(a,b) (a)=min((a),(b))
  9. #define maxi(a,b) (a)=max((a),(b))
  10. #define ll long long
  11. #define el '\n'
  12. #define fi first
  13. #define se second
  14. #define ii pair<int,int>
  15. #define vll(i) i.begin(),i.end()
  16. #define pb push_back
  17. #define fr front()
  18.  
  19. #define MASK(i) ((1ll) << (i))
  20. #define BIT(i,n) (((i)>>(n))&1)
  21. const string NAME= "hamming";
  22. const int N=2e4;
  23. const ll MOD=1e18;
  24. int u[N + 3], prime[N + 3];
  25. vector< int> v;
  26. bool chinhphuong( int x){
  27. return (ceil(sqrt(1.0* x) ) == sqrt(x));
  28. }
  29.  
  30. int ans = 0;
  31. void nhap(){
  32.  
  33. int k, tam = 0 ; cin >> k;
  34.  
  35. for1(i,1,k){
  36. v.clear();
  37. int n , m, tam = 0; cin >> n >> m ;
  38. if( n > m) swap(n,m);
  39. for( int l = 1, r ;l <= n; l = r + 1){
  40. r = min( {n, n / ( n / l ), m / ( m / l) });
  41. tam += (n / l) * (m / l) * (u[r] - u[l - 1]);
  42. }
  43. ans ^= tam;
  44. }
  45.  
  46. }
  47.  
  48. unordered_map< int , bool > mp;
  49. int main() {
  50. if (fopen((NAME + ".INP").c_str(), "r")) {
  51. freopen((NAME + ".INP").c_str(), "r", stdin);
  52. freopen((NAME + ".OUT").c_str(), "w", stdout);
  53. }
  54. ios::sync_with_stdio(0);
  55. cin.tie(0);
  56. cout.tie(0);
  57. for(int i = 2; i * i <= N; i ++)
  58. if( prime[i] == 0){
  59. for( int j = i * i ; j <= N; j += i )
  60. if( prime[j] == 0) prime[j] = i;
  61. }
  62. for(int i = 2; i <= N; i ++) if( prime[i] == 0) prime[ i ] = i;
  63. u[1] = 1;
  64.  
  65. for1(i,2, N){
  66. mp.clear();
  67. bool ok = 1;
  68. int I = i;
  69. int x =prime[i];
  70. while( x > 1 ){
  71. while ( I % x == 0){
  72. if( mp[x] == 1) {ok = 0; break;}
  73. mp[x] = 1;
  74. I /= x;
  75. }
  76. if( ok == 0 ) break;
  77. x = prime[I];
  78. }
  79.  
  80. if( ok == 1) {
  81. if( mp.size() % 2 == 1) u[i] = -1;
  82. else u[i] = 1;
  83. }
  84. else u[i] = 0;
  85. u[i] += u [ i - 1] ;
  86. }
  87.  
  88. nhap();
  89.  
  90. if( ans == 0) cout << "NO" << el;
  91. else cout << "YES" << el;
  92. ans = 0;
  93. nhap();
  94. if( ans == 0) cout << "NO" << el;
  95. else cout << "YES" << el;
  96. ans = 0;
  97. nhap();
  98. if( ans == 0) cout << "NO" ;
  99. else cout << "YES" ;
  100.  
  101. return 0;
  102.  
  103. }
  104.  
Success #stdin #stdout 0.01s 5320KB
stdin
Standard input is empty
stdout
NO
NO
NO