| Task: | Equilateral numbers |
| Sender: | (╯°□°)╯︵ ┻━┻ |
| Submission time: | 2024-11-16 15:03:09 +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.01 s | details |
| #7 | ACCEPTED | 0.00 s | details |
| #8 | ACCEPTED | 0.02 s | details |
| #9 | ACCEPTED | 0.01 s | details |
| #10 | ACCEPTED | 0.00 s | details |
| #11 | ACCEPTED | 0.01 s | details |
| #12 | ACCEPTED | 0.02 s | details |
Code
#include <iostream>
#include <cmath>
using namespace std;
typedef long long ll;
ll nums[1<<20];
bool test(ll n) {
ll x = (sqrtl(1+8*n)-1)/2;
if (x*(x+1)/2==n) return 1;
if (x*(x-1)/2==n) return 1;
if ((x+1)*(x+2)/2==n) return 1;
return 0;
}
int main() {
ll n;
cin>>n;
if (test(n)) {
cout<<"1\n";
return 0;
}
for(ll i=1; ; ++i) {
ll a = i*(i+1)/2;
if (a>n) {
cout<<"3\n";
return 0;
}
if (test(n-a)) {
cout<<"2\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 |
