Code Submission Evaluation System Login

Datatähti 2015 loppu

Start:2015-01-29 12:15:00
End:2015-01-29 17:15:00
 

Tasks | Scoreboard | Statistics


CSES - Datatähti 2015 loppu - Results
History
2015-01-29 16:42:3850
2015-01-29 16:41:190
2015-01-29 16:22:3250
2015-01-29 16:16:540
2015-01-29 14:03:5850
2015-01-29 13:52:0950
2015-01-29 13:34:3450
2015-01-29 13:25:080
2015-01-29 13:16:4250
2015-01-29 13:14:4650
2015-01-29 13:05:3716
Task:Lukujono
Sender:SampoH
Submission time:2015-01-29 16:42:38
Language:C++
Status:READY
Score:50

Feedback

groupverdictscore
#1ACCEPTED16
#2ACCEPTED34
#3TIME LIMIT EXCEEDED0

Test results

testverdicttime (s)group
#1ACCEPTED0.05 / 4.001details
#2ACCEPTED0.06 / 4.001details
#3ACCEPTED0.06 / 4.001details
#4ACCEPTED0.07 / 4.001details
#5ACCEPTED0.06 / 4.001details
#6ACCEPTED0.06 / 4.001details
#7ACCEPTED0.06 / 4.001details
#8ACCEPTED0.07 / 4.001details
#9ACCEPTED0.08 / 4.002details
#10ACCEPTED0.07 / 4.002details
#11ACCEPTED0.07 / 4.002details
#12ACCEPTED0.06 / 4.002details
#13ACCEPTED0.07 / 4.002details
#14ACCEPTED0.08 / 4.002details
#15ACCEPTED0.07 / 4.002details
#16ACCEPTED0.08 / 4.002details
#17TIME LIMIT EXCEEDED-- / 4.003details
#18TIME LIMIT EXCEEDED-- / 4.003details
#19TIME LIMIT EXCEEDED-- / 4.003details
#20TIME LIMIT EXCEEDED-- / 4.003details
#21TIME LIMIT EXCEEDED-- / 4.003details
#22TIME LIMIT EXCEEDED-- / 4.003details
#23TIME LIMIT EXCEEDED-- / 4.003details
#24TIME LIMIT EXCEEDED-- / 4.003details

Compiler report

input/code.cpp: In function 'long long int uolevi(long long int)':
input/code.cpp:30:5: warning: unused variable 'a' [-Wunused-variable]
  ll a = 0;
     ^
input/code.cpp:31:5: warning: unused variable 'b' [-Wunused-variable]
  ll b = 0;
     ^
input/code.cpp:32:5: warning: unused variable 'c' [-Wunused-variable]
  ll c = 0;
     ^

Code

#include <iostream>
#include <map>
#include <cmath>

using namespace std;

#define ll long long

map<ll,ll> cache;
map<ll,ll> cache2;

int values[100] = {0,1,1,2,3,4,6,7,9,11,13,14,19,20,22,25,29,30,36,37,42,45,47,48,60,62,64,68,73,74,84,85,93,96,98,101,119,120,122,125,137,138,148,149,154,162,164,165,193,195,201,204,209,210,226,229,241,244,246,247,278,279,281,289,305,308,318,319,324,327,337,338,388,389,391,399,404,407,417,418,446,454,456,457,488,491,493,496,508,509,545,548,553,556,558,561,625,626,632,640};

ll uolevi(ll x) {
	if (x < 100)
		return values[x];
	ll s = 0;
	ll n = 0;
	ll v = 0;
	if (x > 10000) {		
		if (cache2.find(x) != cache2.end()) {
			ll s = cache2.at(x);
			return s;
		}
	}
	if (cache.find(x) != cache.end()) {
		ll s = cache.at(x);
		return s;
	}
	ll a = 0;
	ll b = 0;
	ll c = 0;
	ll l = 0;
	ll lv = 0;
	for (int i = 2; i <= x; i++) {
		n = x/i;
		if (n < 2) {
			break;
		}	
		if (l == n) {
			s+=lv;
			continue;
		}	
		l = n;
		if (n < 100)
			v = values[n];
		else if (n > 10000) {
			if (cache.find(n) != cache.end()) {
				v = cache.at(n);
			} else {
				v = uolevi(n);
				cache[n] = v;
			}
		} else {
			if (cache2.find(n) != cache2.end()) {
				v = cache2.at(n);
			} else {
				v = uolevi(n);
				cache2[n] = v;
			}
		}
		lv = v;
		s += v;
	}
	s += (x/2)+((x%2!=0)?1:0);
	return s;
}
/*ll uolevi_naive(ll x) {
	if (x == 0) return 0;
	if (x == 1) return 1;
	ll s = 0;
	ll n = 0;
	ll v = 0;
	for (int i = 2; i <= x; i++) {
		n = x/i;
		v = uolevi_naive(n);
		s += v;
	}
	return s;
}
}*/
int main(int argc, char ** argv) {
	cin.sync_with_stdio(false);

	ll n;
	cin >> n;
	
	cout << uolevi(n) << "\n";
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
542

view   save

correct output
11942

view   save

user output
11942

view   save

Test 2

Group: 1

Verdict: ACCEPTED

input
929

view   save

correct output
29913

view   save

user output
29913

view   save

Test 3

Group: 1

Verdict: ACCEPTED

input
801

view   save

correct output
23460

view   save

user output
23460

view   save

Test 4

Group: 1

Verdict: ACCEPTED

input
935

view   save

correct output
30006

view   save

user output
30006

view   save

Test 5

Group: 1

Verdict: ACCEPTED

input
998

view   save

correct output
33766

view   save

user output
33766

view   save

Test 6

Group: 1

Verdict: ACCEPTED

input
942

view   save

correct output
30490

view   save

user output
30490

view   save

Test 7

Group: 1

Verdict: ACCEPTED

input
736

view   save

correct output
20285

view   save

user output
20285

view   save

Test 8

Group: 1

Verdict: ACCEPTED

input
930

view   save

correct output
29975

view   save

user output
29975

view   save

Test 9

Group: 2

Verdict: ACCEPTED

input
95404

view   save

correct output
90172356

view   save

user output
90172356

view   save

Test 10

Group: 2

Verdict: ACCEPTED

input
98060

view   save

correct output
94687572

view   save

user output
94687572

view   save

Test 11

Group: 2

Verdict: ACCEPTED

input
69495

view   save

correct output
52308390

view   save

user output
52308390

view   save

Test 12

Group: 2

Verdict: ACCEPTED

input
92197

view   save

correct output
85306979

view   save

user output
85306979

view   save

Test 13

Group: 2

Verdict: ACCEPTED

input
53418

view   save

correct output
32957881

view   save

user output
32957881

view   save

Test 14

Group: 2

Verdict: ACCEPTED

input
97377

view   save

correct output
93859995

view   save

user output
93859995

view   save

Test 15

Group: 2

Verdict: ACCEPTED

input
68065

view   save

correct output
50223001

view   save

user output
50223001

view   save

Test 16

Group: 2

Verdict: ACCEPTED

input
95463

view   save

correct output
90201672

view   save

user output
90201672

view   save

Test 17

Group: 3

Verdict: TIME LIMIT EXCEEDED

input
74323456

view   save

correct output
8975396101231

view   save

user output
(empty)

Test 18

Group: 3

Verdict: TIME LIMIT EXCEEDED

input
92132055

view   save

correct output
13006378374515

view   save

user output
(empty)

Test 19

Group: 3

Verdict: TIME LIMIT EXCEEDED

input
55135704

view   save

correct output
5354656932672

view   save

user output
(empty)

Test 20

Group: 3

Verdict: TIME LIMIT EXCEEDED

input
98613338

view   save

correct output
14631125716007

view   save

user output
(empty)

Test 21

Group: 3

Verdict: TIME LIMIT EXCEEDED

input
75558302

view   save

correct output
9238208186405

view   save

user output
(empty)

Test 22

Group: 3

Verdict: TIME LIMIT EXCEEDED

input
94968034

view   save

correct output
13713914468591

view   save

user output
(empty)

Test 23

Group: 3

Verdict: TIME LIMIT EXCEEDED

input
52163652

view   save

correct output
4858985762438

view   save

user output
(empty)

Test 24

Group: 3

Verdict: TIME LIMIT EXCEEDED

input
94830583

view   save

correct output
13674294022172

view   save

user output
(empty)