CSES - HIIT Open 2024 - Results
Submission details
Task:Equilateral numbers
Sender:Barren plateau
Submission time:2024-11-16 14:28:05 +0200
Language:C++ (C++17)
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#5ACCEPTED0.00 sdetails
#6ACCEPTED0.02 sdetails
#7ACCEPTED0.00 sdetails
#8ACCEPTED0.12 sdetails
#9ACCEPTED0.14 sdetails
#10ACCEPTED0.14 sdetails
#11ACCEPTED0.14 sdetails
#12ACCEPTED0.14 sdetails

Code

#include <bits/stdc++.h>
using namespace std;
using Z = long long int;
int main() {
cin.sync_with_stdio(false);
cin.tie(nullptr);
Z n;
cin >> n;
Z i = 1;
Z best = 3;
while(true) {
Z x = i * (i + 1) / 2;
if(x > n) {
break;
}
if(x == n) {
best = 1;
break;
} else {
Z diff = n - x;
Z A = 0;
Z B = 2000000;
while(A != B) {
Z M = (A + B + 1) / 2;
if(M * (M + 1) / 2 > diff) {
B = M - 1;
} else {
A = M;
}
}
if(diff == A * (A + 1) / 2) {
best = 2;
}
}
++i;
}
cout << best << "\n";
return 0;
}

Test details

Test 1

Verdict: ACCEPTED

input
1

correct output
1

user output
1

Test 2

Verdict: ACCEPTED

input
2

correct output
2

user output
2

Test 3

Verdict: ACCEPTED

input
3

correct output
1

user output
1

Test 4

Verdict: ACCEPTED

input
5

correct output
3

user output
3

Test 5

Verdict: ACCEPTED

input
33

correct output
3

user output
3

Test 6

Verdict: ACCEPTED

input
12385719843

correct output
3

user output
3

Test 7

Verdict: ACCEPTED

input
10935032

correct output
3

user output
3

Test 8

Verdict: ACCEPTED

input
659023495928

correct output
3

user output
3

Test 9

Verdict: ACCEPTED

input
913591235689

correct output
2

user output
2

Test 10

Verdict: ACCEPTED

input
999999911791

correct output
1

user output
1

Test 11

Verdict: ACCEPTED

input
1000000000000

correct output
2

user output
2

Test 12

Verdict: ACCEPTED

input
999999999998

correct output
3

user output
3