| Task: | Equilateral numbers |
| Sender: | Barren plateau |
| Submission time: | 2024-11-16 14:28:05 +0200 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | ACCEPTED | 0.00 s | details |
| #5 | ACCEPTED | 0.00 s | details |
| #6 | ACCEPTED | 0.02 s | details |
| #7 | ACCEPTED | 0.00 s | details |
| #8 | ACCEPTED | 0.12 s | details |
| #9 | ACCEPTED | 0.14 s | details |
| #10 | ACCEPTED | 0.14 s | details |
| #11 | ACCEPTED | 0.14 s | details |
| #12 | ACCEPTED | 0.14 s | details |
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 |
