CSES - Datatähti 2018 alku - Results
Submission details
Task:Kyselyt
Sender:nokka7
Submission time:2017-10-15 12:07:18 +0300
Language:C++
Status:READY
Result:37
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED25
#30
Test results
testverdicttimegroup
#1ACCEPTED0.06 s1details
#2ACCEPTED0.04 s2details
#30.06 s3details

Compiler report

input/code.cpp:285:54: warning: integer constant is so large that it is unsigned [enabled by default]
  if (kysyttava >= 1688888888888888890 && kysyttava < 17888888888888888890 ) {
                                                      ^
input/code.cpp: In function 'long long int vastaus(long long int)':
input/code.cpp:312:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^

Code

#include <bits/stdc++.h>
using namespace std;
long long vastaus(long long kysyttava) {
	if (kysyttava < 10) {
		return kysyttava;
	}
	if (kysyttava >= 10 && kysyttava < 190 ) {
		long long auttaja;
		int tyyppi;
		auttaja = (kysyttava - 10);
		tyyppi = (auttaja) % 2;
		if (tyyppi == 0) return (auttaja/20 + 1);
		if (tyyppi == 1) return (auttaja%20)/2;
	}
	if (kysyttava >= 190 && kysyttava < 2890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 3;
		auttaja = (kysyttava  - 190);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*100) + 1);
		if (tyyppi == 1) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 2) return (auttaja%(num*10))/num;		
	}
	if (kysyttava >= 2890 && kysyttava < 38890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 4;
		auttaja = (kysyttava  - 2890);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*1000) + 1);
		if (tyyppi == 1) return (auttaja%(num*1000))/(num*100);
		if (tyyppi == 2) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 3) return (auttaja%(num*10))/(num*1);
	}
	if (kysyttava >= 38890 && kysyttava < 488890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 5;
		auttaja = (kysyttava  - 38890);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*10000) + 1);
		if (tyyppi == 1) return (auttaja%(num*10000))/(num*1000);
		if (tyyppi == 2) return (auttaja%(num*1000))/(num*100);
		if (tyyppi == 3) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 4) return (auttaja%(num*10))/(num*1);
	}
	if (kysyttava >= 488890 && kysyttava < 5888890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 6;
		auttaja = (kysyttava  - 488890);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*100000) + 1);
		if (tyyppi == 1) return (auttaja%(num*100000))/(num*10000);
		if (tyyppi == 2) return (auttaja%(num*10000))/(num*1000);
		if (tyyppi == 3) return (auttaja%(num*1000))/(num*100);
		if (tyyppi == 4) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 5) return (auttaja%(num*10))/(num*1);
	}
	if (kysyttava >= 5888890 && kysyttava < 68888890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 7;
		auttaja = (kysyttava  - 5888890);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*1000000) + 1);
		if (tyyppi == 1) return (auttaja%(num*1000000))/(num*100000);
		if (tyyppi == 2) return (auttaja%(num*100000))/(num*10000);
		if (tyyppi == 3) return (auttaja%(num*10000))/(num*1000);
		if (tyyppi == 4) return (auttaja%(num*1000))/(num*100);
		if (tyyppi == 5) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 6) return (auttaja%(num*10))/(num*1);
	}
	if (kysyttava >= 68888890 && kysyttava < 788888890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 8;
		auttaja = (kysyttava  - 68888890);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*10000000) + 1);
		if (tyyppi == 1) return (auttaja%(num*10000000))/(num*1000000);
		if (tyyppi == 2) return (auttaja%(num*1000000))/(num*100000);
		if (tyyppi == 3) return (auttaja%(num*100000))/(num*10000);
		if (tyyppi == 4) return (auttaja%(num*10000))/(num*1000);
		if (tyyppi == 5) return (auttaja%(num*1000))/(num*100);
		if (tyyppi == 6) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 7) return (auttaja%(num*10))/(num*1);
	}
	if (kysyttava >= 788888890 && kysyttava < 8888888890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 9;
		auttaja = (kysyttava  - 788888890);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*100000000) + 1);
		if (tyyppi == 1) return (auttaja%(num*100000000))/(num*10000000);
		if (tyyppi == 2) return (auttaja%(num*10000000))/(num*1000000);
		if (tyyppi == 3) return (auttaja%(num*1000000))/(num*100000);
		if (tyyppi == 4) return (auttaja%(num*100000))/(num*10000);
		if (tyyppi == 5) return (auttaja%(num*10000))/(num*1000);
		if (tyyppi == 6) return (auttaja%(num*1000))/(num*100);
		if (tyyppi == 7) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 8) return (auttaja%(num*10))/(num*1);
	}
	if (kysyttava >= 8888888890 && kysyttava < 98888888890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 10;
		auttaja = (kysyttava  - 8888888890);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*1000000000) + 1);
		if (tyyppi == 1) return (auttaja%(num*1000000000))/(num*100000000);
		if (tyyppi == 2) return (auttaja%(num*100000000))/(num*10000000);
		if (tyyppi == 3) return (auttaja%(num*10000000))/(num*1000000);
		if (tyyppi == 4) return (auttaja%(num*1000000))/(num*100000);
		if (tyyppi == 5) return (auttaja%(num*100000))/(num*10000);
		if (tyyppi == 6) return (auttaja%(num*10000))/(num*1000);
		if (tyyppi == 7) return (auttaja%(num*1000))/(num*100);
		if (tyyppi == 8) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 9) return (auttaja%(num*10))/(num*1);
	}
		if (kysyttava >= 98888888890 && kysyttava < 1088888888890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 11;
		auttaja = (kysyttava  - 98888888890);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*10000000000) + 1);
		if (tyyppi == 1) return (auttaja%(num*10000000000))/(num*1000000000);
		if (tyyppi == 2) return (auttaja%(num*1000000000))/(num*100000000);
		if (tyyppi == 3) return (auttaja%(num*100000000))/(num*10000000);
		if (tyyppi == 4) return (auttaja%(num*10000000))/(num*1000000);
		if (tyyppi == 5) return (auttaja%(num*1000000))/(num*100000);
		if (tyyppi == 6) return (auttaja%(num*100000))/(num*10000);
		if (tyyppi == 7) return (auttaja%(num*10000))/(num*1000);
		if (tyyppi == 8) return (auttaja%(num*1000))/(num*100);
		if (tyyppi == 9) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 10) return (auttaja%(num*10))/(num*1);
	}
		if (kysyttava >= 1088888888890 && kysyttava < 11888888888890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 12;
		auttaja = (kysyttava  - 1088888888890);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*100000000000) + 1);
		if (tyyppi == 1) return (auttaja%(num*100000000000))/(num*10000000000);
		if (tyyppi == 2) return (auttaja%(num*10000000000))/(num*1000000000);
		if (tyyppi == 3) return (auttaja%(num*1000000000))/(num*100000000);
		if (tyyppi == 4) return (auttaja%(num*100000000))/(num*10000000);
		if (tyyppi == 5) return (auttaja%(num*10000000))/(num*1000000);
		if (tyyppi == 6) return (auttaja%(num*1000000))/(num*100000);
		if (tyyppi == 7) return (auttaja%(num*100000))/(num*10000);
		if (tyyppi == 8) return (auttaja%(num*10000))/(num*1000);
		if (tyyppi == 9) return (auttaja%(num*1000))/(num*100);
		if (tyyppi == 10) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 11) return (auttaja%(num*10))/(num*1);
	}
		if (kysyttava >= 11888888888890 && kysyttava < 128888888888890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 13;
		auttaja = (kysyttava  - 11888888888890);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*1000000000000) + 1);
		if (tyyppi == 1) return (auttaja%(num*1000000000000))/(num*100000000000);
		if (tyyppi == 2) return (auttaja%(num*100000000000))/(num*10000000000);
		if (tyyppi == 3) return (auttaja%(num*10000000000))/(num*1000000000);
		if (tyyppi == 4) return (auttaja%(num*1000000000))/(num*100000000);
		if (tyyppi == 5) return (auttaja%(num*100000000))/(num*10000000);
		if (tyyppi == 6) return (auttaja%(num*10000000))/(num*1000000);
		if (tyyppi == 7) return (auttaja%(num*1000000))/(num*100000);
		if (tyyppi == 8) return (auttaja%(num*100000))/(num*10000);
		if (tyyppi == 9) return (auttaja%(num*10000))/(num*1000);
		if (tyyppi == 10) return (auttaja%(num*1000))/(num*100);
		if (tyyppi == 11) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 12) return (auttaja%(num*10))/(num*1);
	}
		if (kysyttava >= 128888888888890 && kysyttava < 1388888888888890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 14;
		auttaja = (kysyttava  - 128888888888890);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*10000000000000) + 1);
		if (tyyppi == 1) return (auttaja%(num*10000000000000))/(num*1000000000000);
		if (tyyppi == 2) return (auttaja%(num*1000000000000))/(num*100000000000);
		if (tyyppi == 3) return (auttaja%(num*100000000000))/(num*10000000000);
		if (tyyppi == 4) return (auttaja%(num*10000000000))/(num*1000000000);
		if (tyyppi == 5) return (auttaja%(num*1000000000))/(num*100000000);
		if (tyyppi == 6) return (auttaja%(num*100000000))/(num*10000000);
		if (tyyppi == 7) return (auttaja%(num*10000000))/(num*1000000);
		if (tyyppi == 8) return (auttaja%(num*1000000))/(num*100000);
		if (tyyppi == 9) return (auttaja%(num*100000))/(num*10000);
		if (tyyppi == 10) return (auttaja%(num*10000))/(num*1000);
		if (tyyppi == 11) return (auttaja%(num*1000))/(num*100);
		if (tyyppi == 12) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 13) return (auttaja%(num*10))/(num*1);
	}
		if (kysyttava >= 1388888888888890 && kysyttava < 14888888888888890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 15;
		auttaja = (kysyttava  - 1388888888888890);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*100000000000000) + 1);
		if (tyyppi == 1) return (auttaja%(num*100000000000000))/(num*10000000000000);
		if (tyyppi == 2) return (auttaja%(num*10000000000000))/(num*1000000000000);
		if (tyyppi == 3) return (auttaja%(num*1000000000000))/(num*100000000000);
		if (tyyppi == 4) return (auttaja%(num*100000000000))/(num*10000000000);
		if (tyyppi == 5) return (auttaja%(num*10000000000))/(num*1000000000);
		if (tyyppi == 6) return (auttaja%(num*1000000000))/(num*100000000);
		if (tyyppi == 7) return (auttaja%(num*100000000))/(num*10000000);
		if (tyyppi == 8) return (auttaja%(num*10000000))/(num*1000000);
		if (tyyppi == 9) return (auttaja%(num*1000000))/(num*100000);
		if (tyyppi == 10) return (auttaja%(num*100000))/(num*10000);
		if (tyyppi == 11) return (auttaja%(num*10000))/(num*1000);
		if (tyyppi == 12) return (auttaja%(num*1000))/(num*100);
		if (tyyppi == 13) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 14) return (auttaja%(num*10))/(num*1);
	}
		if (kysyttava >= 14888888888888890 && kysyttava < 158888888888888890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 16;
		auttaja = (kysyttava  - 14888888888888890);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*1000000000000000) + 1);
		if (tyyppi == 1) return (auttaja%(num*1000000000000000))/(num*100000000000000);
		if (tyyppi == 2) return (auttaja%(num*100000000000000))/(num*10000000000000);
		if (tyyppi == 3) return (auttaja%(num*10000000000000))/(num*1000000000000);
		if (tyyppi == 4) return (auttaja%(num*1000000000000))/(num*100000000000);
		if (tyyppi == 5) return (auttaja%(num*100000000000))/(num*10000000000);
		if (tyyppi == 6) return (auttaja%(num*10000000000))/(num*1000000000);
		if (tyyppi == 7) return (auttaja%(num*1000000000))/(num*100000000);
		if (tyyppi == 8) return (auttaja%(num*100000000))/(num*10000000);
		if (tyyppi == 9) return (auttaja%(num*10000000))/(num*1000000);
		if (tyyppi == 10) return (auttaja%(num*1000000))/(num*100000);
		if (tyyppi == 11) return (auttaja%(num*100000))/(num*10000);
		if (tyyppi == 12) return (auttaja%(num*10000))/(num*1000);
		if (tyyppi == 13) return (auttaja%(num*1000))/(num*100);
		if (tyyppi == 14) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 15) return (auttaja%(num*10))/(num*1);
	}
		if (kysyttava >= 158888888888888890 && kysyttava < 1688888888888888890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 17;
		auttaja = (kysyttava  - 158888888888888890);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*10000000000000000) + 1);
		if (tyyppi == 1) return (auttaja%(num*10000000000000000))/(num*1000000000000000);
		if (tyyppi == 2) return (auttaja%(num*1000000000000000))/(num*100000000000000);
		if (tyyppi == 3) return (auttaja%(num*100000000000000))/(num*10000000000000);
		if (tyyppi == 4) return (auttaja%(num*10000000000000))/(num*1000000000000);
		if (tyyppi == 5) return (auttaja%(num*1000000000000))/(num*100000000000);
		if (tyyppi == 6) return (auttaja%(num*100000000000))/(num*10000000000);
		if (tyyppi == 7) return (auttaja%(num*10000000000))/(num*1000000000);
		if (tyyppi == 8) return (auttaja%(num*1000000000))/(num*100000000);
		if (tyyppi == 9) return (auttaja%(num*100000000))/(num*10000000);
		if (tyyppi == 10) return (auttaja%(num*10000000))/(num*1000000);
		if (tyyppi == 11) return (auttaja%(num*1000000))/(num*100000);
		if (tyyppi == 12) return (auttaja%(num*100000))/(num*10000);
		if (tyyppi == 13) return (auttaja%(num*10000))/(num*1000);
		if (tyyppi == 14) return (auttaja%(num*1000))/(num*100);
		if (tyyppi == 15) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 16) return (auttaja%(num*10))/(num*1);
	}
	if (kysyttava >= 1688888888888888890 && kysyttava < 17888888888888888890 ) {
		long long auttaja;
		int tyyppi;
		int num;
		num = 18;
		auttaja = (kysyttava  - 1688888888888888890);
		tyyppi = (auttaja % num);
		if (tyyppi == 0) return (auttaja/(num*100000000000000000) + 1);
		if (tyyppi == 1) return (auttaja%(num*10000000000000000))/(num*1000000000000000);
		if (tyyppi == 2) return (auttaja%(num*10000000000000000))/(num*1000000000000000);
		if (tyyppi == 3) return (auttaja%(num*1000000000000000))/(num*100000000000000);
		if (tyyppi == 4) return (auttaja%(num*100000000000000))/(num*10000000000000);
		if (tyyppi == 5) return (auttaja%(num*10000000000000))/(num*1000000000000);
		if (tyyppi == 6) return (auttaja%(num*1000000000000))/(num*100000000000);
		if (tyyppi == 7) return (auttaja%(num*100000000000))/(num*10000000000);
		if (tyyppi == 8) return (auttaja%(num*10000000000))/(num*1000000000);
		if (tyyppi == 9) return (auttaja%(num*1000000000))/(num*100000000);
		if (tyyppi == 10) return (auttaja%(num*100000000))/(num*10000000);
		if (tyyppi == 11) return (auttaja%(num*10000000))/(num*1000000);
		if (tyyppi == 12) return (auttaja%(num*1000000))/(num*100000);
		if (tyyppi == 13) return (auttaja%(num*100000))/(num*10000);
		if (tyyppi == 14) return (auttaja%(num*10000))/(num*1000);
		if (tyyppi == 15) return (auttaja%(num*1000))/(num*100);
		if (tyyppi == 16) return (auttaja%(num*100))/(num*10);
		if (tyyppi == 17) return (auttaja%(num*10))/(num*1);
	}
	else return 0;
}
int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	long long luvut[1010] = {0};
	long long x;
	for (int i = 1; cin >> x && i < 1008; ++i) {
		luvut[i -1 ] = x ;
	}
	for ( int i = 1; i < 1005 ; i = i + 1 ) {
		if (luvut[i] == 0) continue;
		cout << vastaus(luvut[i]) << "\n";
	}
	}

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
...
Truncated

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
...
Truncated

Test 3

Group: 3

Verdict:

input
1000
672274832941907421
260504693279721732
646999966092970935
100853063389774434
...

correct output
7
2
2
0
9
...

user output
7
2
2
0
9
...
Truncated