CSES - Datatähti 2018 alku - Results
Submission details
Task:Kyselyt
Sender:Nipatiitti
Submission time:2017-10-11 16:14:30 +0300
Language:C++
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED25
#3ACCEPTED63
Test results
testverdicttimegroup
#1ACCEPTED0.08 s1details
#2ACCEPTED0.04 s2details
#3ACCEPTED0.05 s3details

Code

#include<iostream>
#include<string>
#include<vector>

using namespace std;

string e(vector<pair<unsigned long long int, unsigned long long int>> l, unsigned long long int i) {
	int k = 1;
	while(i > l[k-1].second) {
		k++;
	}

	unsigned long long int t = i - k*(-1 * l[k-2].first) - l[k-2].second;

	string e = to_string((t + k - 1) / k);
	int p = t % k;
	

	if (p != 0) {
		return string(1, e[p-1]);
	}

	return string(1, e[e.length()-1]);
}


int main() {
	string y = "9";
	vector<pair<unsigned long long int, unsigned long long int>> l;

	l.push_back(make_pair(9, 9));

	for (int i = 1; i < 18; i++) {
		y += "9";
		l.push_back(make_pair(stoull(y), (l[i - 1].second + (stoull(y) - l[i - 1].first)*y.length())));
	}

	unsigned long long int v;
	int r;
	cin >> r;

	for (int i = 0; i < r; i++) {
		cin >> v;
		if (v < 10) {
			cout << v << "\n";
			continue;
		}
		cout << e(l, v) << "\n";
		v = 0;
	}

	return 0;
}

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
1000
582
214
723
273
...

correct output
0
1
7
7
6
...

user output
0
1
7
7
6
...

Test 2

Group: 2

Verdict: ACCEPTED

input
1000
615664
916441
627600
279508
...

correct output
1
2
3
2
2
...

user output
1
2
3
2
2
...

Test 3

Group: 3

Verdict: ACCEPTED

input
1000
672274832941907421
260504693279721732
646999966092970935
100853063389774434
...

correct output
7
2
2
0
9
...

user output
7
2
2
0
9
...