CSES - Aalto Competitive Programming 2024 - wk8 - Homework C++ - Results
Submission details
Task:Counting ones
Sender:hexadecimaaal
Submission time:2024-10-24 02:19:35 +0300
Language:C++ (C++11)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#6ACCEPTED0.00 sdetails
#7ACCEPTED0.05 sdetails
#8ACCEPTED0.05 sdetails
#9ACCEPTED0.05 sdetails
#10ACCEPTED0.05 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:14:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |   scanf("%zu", &n);
      |   ~~~~~^~~~~~~~~~~
input/code.cpp:17:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |     scanf("%lu", &data[i]);
      |     ~~~~~^~~~~~~~~~~~~~~~~

Code

#include<cstdio>
#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")
#pragma GCC optimize "Ofast"
#pragma GCC optimize "unroll-loops"

long int data[200000];

int main() {
  #ifdef ONPC
  freopen("A2.in", "r", stdin);
  #endif

  size_t n;
  scanf("%zu", &n);

  for (size_t i = 0; i < n; i++) {
    scanf("%lu", &data[i]);
  }

  int ans = 0;
  size_t imax = -1;
  size_t jmax = -1;
  for (size_t i = 0; i < n; i++) {
    for (size_t j = i; j < n; j++) {
      int count = __builtin_popcountll(data[i] * data[j]);
      if(count > ans) {
        imax = i;
        jmax = j;
        ans = count;
      }
    }
  }

  printf("%d\n%zu %zu\n", ans, data[imax], data[jmax]);
  return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
5
42 100 73 94 1 

correct output
9
42 73

user output
9
42 73

Test 2

Verdict: ACCEPTED

input
5
44 19 3 94 55 

correct output
8
19 94

user output
8
19 94

Test 3

Verdict: ACCEPTED

input
10
551 71 709 840 291 122 511 570...

correct output
15
893 438

user output
15
893 438

Test 4

Verdict: ACCEPTED

input
10
968 901 548 173 973 856 715 61...

correct output
14
715 698

user output
14
715 698

Test 5

Verdict: ACCEPTED

input
100
221994 55181 870733 831328 206...

correct output
29
396737 649459

user output
29
396737 649459

Test 6

Verdict: ACCEPTED

input
100
892861 947477 331980 209407 82...

correct output
29
825210 578859

user output
29
825210 578859

Test 7

Verdict: ACCEPTED

input
10000
76308292 227339075 779918796 3...

correct output
50
978548139 589096701

user output
50
978548139 589096701

Test 8

Verdict: ACCEPTED

input
10000
873429404 968540665 239439572 ...

correct output
49
661547021 435157931

user output
49
661547021 435157931

Test 9

Verdict: ACCEPTED

input
10000
10374159 364461027 501874596 4...

correct output
50
313852607 889662850

user output
50
313852607 889662850

Test 10

Verdict: ACCEPTED

input
10000
771320644 298761159 20751947 4...

correct output
49
516789275 257079921

user output
49
516789275 257079921