CSES - Datatähti 2015 loppu - Results
 Task: Lukujono Sender: Scintillo Submission time: 2015-01-29 15:35:20 Language: C++ Status: READY Result: 50
Feedback
groupverdictscore
#1ACCEPTED16
#2ACCEPTED34
#30
Test results
testverdicttimegroup
#1ACCEPTED0.06 s1details
#2ACCEPTED0.06 s1details
#3ACCEPTED0.06 s1details
#4ACCEPTED0.05 s1details
#5ACCEPTED0.06 s1details
#6ACCEPTED0.06 s1details
#7ACCEPTED0.06 s1details
#8ACCEPTED0.06 s1details
#9ACCEPTED0.08 s2details
#10ACCEPTED0.08 s2details
#11ACCEPTED0.08 s2details
#12ACCEPTED0.07 s2details
#13ACCEPTED0.07 s2details
#14ACCEPTED0.08 s2details
#15ACCEPTED0.06 s2details
#16ACCEPTED0.08 s2details
#17--3details
#18--3details
#19--3details
#20--3details
#21--3details
#22--3details
#23--3details
#24--3details

Code

```#include <iostream>
#include <unordered_map>
#include <algorithm>
#include <cassert>

using namespace std;
int x = 0;

int64_t solve(int i)
{
static unordered_map<int, int64_t> cache;

if(cache.count(i))
return cache[i];

if(i == 0 || i == 1)
return i;

int64_t r = 0;

for(int64_t monta = 1; monta <= i / 2;)
{
int64_t suurin = i / monta;
int64_t pienin = i / (monta + 1) + 1;
int64_t kertaa = suurin - pienin + 1;

/*if(i == x)
cout << kertaa << " * solve " << monta << endl;*/

r += kertaa * solve(monta);

int64_t a, b;
a = monta;
b = i / 2 + 2;

while(a < b)
{
int64_t c = (a + b) / 2;
int64_t res = i / c;

if(res + 1 < pienin)
{
b = c;
}
else
{
a = c + 1;
}
}

//cout << monta << endl;

monta = b - 1;

//cout << i << " " << pienin << " " << monta << endl;
}

return cache[i] = r;
}

int main()
{
int n;
cin >> n;
cout << solve(n) << endl;

/*for(x = 2; x < 20; x++)
{
cout << "X: " << x << endl;
solve(x);
cout << endl;
}*/
}```

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
542

correct output
11942

user output
11942

Test 2

Group: 1

Verdict: ACCEPTED

input
929

correct output
29913

user output
29913

Test 3

Group: 1

Verdict: ACCEPTED

input
801

correct output
23460

user output
23460

Test 4

Group: 1

Verdict: ACCEPTED

input
935

correct output
30006

user output
30006

Test 5

Group: 1

Verdict: ACCEPTED

input
998

correct output
33766

user output
33766

Test 6

Group: 1

Verdict: ACCEPTED

input
942

correct output
30490

user output
30490

Test 7

Group: 1

Verdict: ACCEPTED

input
736

correct output
20285

user output
20285

Test 8

Group: 1

Verdict: ACCEPTED

input
930

correct output
29975

user output
29975

Test 9

Group: 2

Verdict: ACCEPTED

input
95404

correct output
90172356

user output
90172356

Test 10

Group: 2

Verdict: ACCEPTED

input
98060

correct output
94687572

user output
94687572

Test 11

Group: 2

Verdict: ACCEPTED

input
69495

correct output
52308390

user output
52308390

Test 12

Group: 2

Verdict: ACCEPTED

input
92197

correct output
85306979

user output
85306979

Test 13

Group: 2

Verdict: ACCEPTED

input
53418

correct output
32957881

user output
32957881

Test 14

Group: 2

Verdict: ACCEPTED

input
97377

correct output
93859995

user output
93859995

Test 15

Group: 2

Verdict: ACCEPTED

input
68065

correct output
50223001

user output
50223001

Test 16

Group: 2

Verdict: ACCEPTED

input
95463

correct output
90201672

user output
90201672

Group: 3

Verdict:

input
74323456

correct output
8975396101231

user output
(empty)

Group: 3

Verdict:

input
92132055

correct output
13006378374515

user output
(empty)

Group: 3

Verdict:

input
55135704

correct output
5354656932672

user output
(empty)

Group: 3

Verdict:

input
98613338

correct output
14631125716007

user output
(empty)

Group: 3

Verdict:

input
75558302

correct output
9238208186405

user output
(empty)

Group: 3

Verdict:

input
94968034

correct output
13713914468591

user output
(empty)

Group: 3

Verdict:

input
52163652

correct output
4858985762438

user output
(empty)

Group: 3

Verdict:

input
94830583

correct output
13674294022172

user output
(empty)