Я аутист
Огромная извечная проблема кода постоянная. , ,
# include <. бит / STDC ++ H> #define будет долго долго #define щий беззнаковым целочисленное значение с помощью патезраса; сопзЬ Int N = 500000, M = N * 33 + 5; встроенный интерфейс для чтения () { щ х = 0; символ ч = GetChar (); для (;! isdigit (ч); ч = GetChar ()); для (; isdigit (СН); ч = GetChar ()) х = х * 10 + СН-'0' ; вернуться х; } Щ п, к, L, R, середина, Num = 1, с [67], А; щ ч [М] [2], сумма [М], ANS, а [N + 5]; LL TOT, тт; встроенные модули недействительными (щ х) { щ Теперь = 1, и; сумма [1] ++; для (INT I = 31; я> = 0, а теперь = CH [теперь] [и], сумма [теперь] ++ я -) { и = (х & с [I])> 0; если ч [теперь] [и] = ++ Num (CH [теперь] [и]!); } } / * Х ^ а [я]> = средний * / проверка встроенный BOOL () { Теперь LL = 0; для (Ui = 0, р, и; г <= п; я ++) { р = 1; для (Int J = 31; р && J> = 0; J -) { у = (а [г] & с [J])> 0; если (середина и с [J]) р = ч [р] [и ^ 1]; то теперь + = сумма [ч [р] [и ^ 1]], р = ч [р] [и]; } Теперь + = сумма [р]; если (теперь> = к * 2) возвращение 1; } Возвращает 0; } / * А ^ Теперь> = ANS * / недействительным Get (интермедиат р, Int л, щ теперь щ ALR) { если ((А ^ сейчас) <ALR) возвращение; если (л <0) {тт + = сумма [р], TOT + = сумма [р] * (LL) (А ^ сейчас); возвращение;} AlR + = C [L] & анс; если (ч [р] [0]) Получить (ч [р] [0], л-1, в настоящее время, ALR); если (ч [р] [1]) Получить (ч [р] [1], L-1, теперь + с [л], ALR); } Инлайн недействительным решения () { L = 0, R = (1 << 32ll) -1; в то время как (L <= R) { середина = L + (LL) R >> 1; если (проверка ()) ANS = середина L = середина + 1; то R = середина-1; } Для (INT I = 0; г <= п; я ++) А = а [I], Get (1,31,0,0); } INT основных () { // freopen ( "data.in", "г", STDIN); // freopen ( "data.out", "ш", стандартный вывод); // соиЬ << часы () << епсИ; с [0] = 1; для (INT = 1; г <= 31; я ++) C [I] = с [I-1] + с [I-1]; п = следующим образом (), к = чтения (), модули (0); для (INT = 1; г <= п; я ++) а [I] = а [I-1] ^ следующим образом (), модули (а [I]); решения (), TOT >> = 1, тт >> = 1; // соиЬ << анс << епсИ; Е ( "% LLD \ п", TOT-ANS * (LL) (тт-к)); // соиЬ << часы () << епсИ; возвращать 0; }