제출 #499216

#제출 시각아이디문제언어결과실행 시간메모리
499216LucaIlieXOR Sum (info1cup17_xorsum)C++17
0 / 100
775 ms8096 KiB
#include <iostream> #include <algorithm> #include <math.h> #define MAX_N 1000000 using namespace std; int v[MAX_N], rest[MAX_N]; int countLower( int v[], int n, int a ) { int st, dr, mij; st = 0; dr = n; while ( dr - st > 1 ) { mij = (st + dr) / 2; if ( v[mij] > a ) dr = mij; else st = mij; } if ( v[st] > a ) return 0; return st + 1; } int main() { int n, maxLog2, st, dr, leftR, rightR, res, i, p; long long nrSume; cin >> n; maxLog2 = 0; for ( i = 0; i < n; i++ ) { cin >> v[i]; if ( log2( v[i] ) > maxLog2 ) maxLog2 = log2( v[i] ); } res = 0; for ( p = 0; p <= maxLog2 + 1; p++ ) { for ( i = 0; i < n; i++ ) rest[i] = v[i] & ((1 << (p + 1)) - 1); sort( rest, rest + n ); /*nrSume = 0; st = dr = 0; for ( i = 0; i < n; i++ ) { leftR = (1 << p) - rest[i]; if ( leftR < 0 ) leftR += (1 << (p + 1)); rightR = (1 << (p + 1)) - 1 - rest[i]; if ( rightR < 0 ) rightR += (1 << (p + 1)); if ( rest[st] > leftR ) st = 0; while ( st < n && rest[st] < leftR ) st++; if ( rest[dr] > rightR ) dr = 0; while ( dr < n && rest[dr] <= rightR ) dr++; if ( leftR <= rightR ) { nrSume += dr - st; if ( leftR <= rest[i] && rest[i] <= rightR ) nrSume++; } else { nrSume += n - st + dr; if ( leftR <= rest[i] || rest[i] <= rightR ) nrSume++; } if ( st == n ) st--; if ( dr == n ) dr--; } nrSume /= 2; if ( nrSume % 2 == 1 ) res += (1 << p);*/ } cout << res; return 0; }

컴파일 시 표준 에러 (stderr) 메시지

xorsum.cpp: In function 'int main()':
xorsum.cpp:31:21: warning: unused variable 'st' [-Wunused-variable]
   31 |     int n, maxLog2, st, dr, leftR, rightR, res, i, p;
      |                     ^~
xorsum.cpp:31:25: warning: unused variable 'dr' [-Wunused-variable]
   31 |     int n, maxLog2, st, dr, leftR, rightR, res, i, p;
      |                         ^~
xorsum.cpp:31:29: warning: unused variable 'leftR' [-Wunused-variable]
   31 |     int n, maxLog2, st, dr, leftR, rightR, res, i, p;
      |                             ^~~~~
xorsum.cpp:31:36: warning: unused variable 'rightR' [-Wunused-variable]
   31 |     int n, maxLog2, st, dr, leftR, rightR, res, i, p;
      |                                    ^~~~~~
xorsum.cpp:32:15: warning: unused variable 'nrSume' [-Wunused-variable]
   32 |     long long nrSume;
      |               ^~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...