Task: | 2021-luvut |
Sender: | iRobo |
Submission time: | 2020-10-11 18:43:34 +0300 |
Language: | Java |
Status: | READY |
Result: | 25 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 10 |
#2 | ACCEPTED | 15 |
#3 | TIME LIMIT EXCEEDED | 0 |
#4 | TIME LIMIT EXCEEDED | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | ACCEPTED | 0.13 s | 1, 2, 3, 4 | details |
#2 | ACCEPTED | 0.13 s | 1, 2, 3, 4 | details |
#3 | ACCEPTED | 0.14 s | 1, 2, 3, 4 | details |
#4 | ACCEPTED | 0.13 s | 1, 2, 3, 4 | details |
#5 | ACCEPTED | 0.13 s | 1, 2, 3, 4 | details |
#6 | ACCEPTED | 0.13 s | 1, 2, 3, 4 | details |
#7 | ACCEPTED | 0.13 s | 1, 2, 3, 4 | details |
#8 | ACCEPTED | 0.13 s | 1, 2, 3, 4 | details |
#9 | ACCEPTED | 0.13 s | 1, 2, 3, 4 | details |
#10 | ACCEPTED | 0.13 s | 1, 2, 3, 4 | details |
#11 | ACCEPTED | 0.19 s | 2, 3, 4 | details |
#12 | ACCEPTED | 0.16 s | 2, 3, 4 | details |
#13 | ACCEPTED | 0.18 s | 2, 3, 4 | details |
#14 | ACCEPTED | 0.17 s | 2, 3, 4 | details |
#15 | ACCEPTED | 0.18 s | 2, 3, 4 | details |
#16 | ACCEPTED | 0.18 s | 2, 3, 4 | details |
#17 | ACCEPTED | 0.18 s | 2, 3, 4 | details |
#18 | ACCEPTED | 0.19 s | 2, 3, 4 | details |
#19 | ACCEPTED | 0.18 s | 2, 3, 4 | details |
#20 | ACCEPTED | 0.17 s | 2, 3, 4 | details |
#21 | TIME LIMIT EXCEEDED | -- | 3, 4 | details |
#22 | TIME LIMIT EXCEEDED | -- | 3, 4 | details |
#23 | TIME LIMIT EXCEEDED | -- | 3, 4 | details |
#24 | TIME LIMIT EXCEEDED | -- | 3, 4 | details |
#25 | TIME LIMIT EXCEEDED | -- | 3, 4 | details |
#26 | TIME LIMIT EXCEEDED | -- | 3, 4 | details |
#27 | TIME LIMIT EXCEEDED | -- | 3, 4 | details |
#28 | TIME LIMIT EXCEEDED | -- | 3, 4 | details |
#29 | TIME LIMIT EXCEEDED | -- | 3, 4 | details |
#30 | TIME LIMIT EXCEEDED | -- | 3, 4 | details |
#31 | TIME LIMIT EXCEEDED | -- | 4 | details |
#32 | TIME LIMIT EXCEEDED | -- | 4 | details |
#33 | TIME LIMIT EXCEEDED | -- | 4 | details |
#34 | TIME LIMIT EXCEEDED | -- | 4 | details |
#35 | TIME LIMIT EXCEEDED | -- | 4 | details |
#36 | TIME LIMIT EXCEEDED | -- | 4 | details |
#37 | TIME LIMIT EXCEEDED | -- | 4 | details |
#38 | TIME LIMIT EXCEEDED | -- | 4 | details |
#39 | TIME LIMIT EXCEEDED | -- | 4 | details |
#40 | TIME LIMIT EXCEEDED | -- | 4 | details |
Code
import java.util.Arrays;import java.util.Scanner;public class Main {static long n;static int firstNon2021 = 4;static int numberOf2021Leftwards = 4;static int[] locationOf2021 = new int[4];static int[] the2021Numbers = new int[4];public static void main(String[] args) {the2021Numbers[3] = 2;the2021Numbers[2] = 0;the2021Numbers[1] = 2;the2021Numbers[0] = 1;Scanner input = new Scanner(System.in);n = input.nextLong();//n = 100;int[] current2021 = new int[20];current2021[0] = 1; //the 2021 number is written in reverse order: 1202----------------current2021[1] = 2;current2021[2] = 0;current2021[3] = 2;/*locationOf2021[0] = 3; //the location of the first number, 2locationOf2021[1] = 2; //location of 0locationOf2021[2] = 1; //location of 2locationOf2021[3] = 0; //the location of the last 2021 number, 1.*/locationOf2021[0] = 3; //the location of the first number, 2locationOf2021[1] = 2; //location of 0locationOf2021[2] = 1; //location of 2locationOf2021[3] = 0; //the location of the last 2021 number, 1.for(long i = 0; i < n-1; i++) {current2021 = findNext2021Number(current2021);}String printNumber = "";for(int j = 0; j < 20; j++) {printNumber = printNumber.concat(Integer.toString(current2021[19-j]));}System.out.println(Long.parseLong(printNumber));/*String printNumber;for(long i = 0; i < n; i++) {printNumber = "";for(int j = 0; j < 20; j++) {printNumber = printNumber.concat(Integer.toString(current2021[19-j]));//System.out.print(Integer.toString(current2021[19-j]));}//System.out.println();System.out.println(Long.parseLong(printNumber) + " locations of 2021: " + locationOf2021[0] + " "+ locationOf2021[1] + " " + locationOf2021[2] + " " + locationOf2021[3] + " first non: "+ firstNon2021 + " left: " + numberOf2021Leftwards);//current2021 = findNext2021Number(new int[]{1,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0});current2021 = findNext2021Number(current2021);}*/}public static int[] findNext2021Number(int[] current2021) {while(current2021[firstNon2021] == 9) {firstNon2021++;}if(numberOf2021Leftwards < 4 && firstNon2021 == locationOf2021[3-numberOf2021Leftwards]) {//if the current non 2021 number is a 2021 number that gets increasedcurrent2021[firstNon2021]++;numberOf2021Leftwards++;for(int i = 0; i < firstNon2021; i++) {current2021[i] = 0;}for(int i = 0; i < numberOf2021Leftwards; i++) {current2021[i] = the2021Numbers[i];locationOf2021[3-i] = i;}//firstNon2021 = numberOf2021Leftwards;//set all the numbers leftwards of the firstNon2021 to 0 and add the remaining 2021 numbers at the end//update the firstNon2021//update locationOf2021for(int i = locationOf2021[0]-1; i > 0; i--) {if(current2021[i] == 0) {locationOf2021[1] = i;//System.out.println(i);break;}}for(int i = 0; i < 5; i++) {boolean matches = false;for(int j = 0; j < 4; j++) {if(i == locationOf2021[j]) {matches = true;break;}}if(!matches) {firstNon2021 = i;break;}}numberOf2021Leftwards = firstNon2021;} else {current2021[firstNon2021]++;if(numberOf2021Leftwards != 0 && current2021[firstNon2021] == the2021Numbers[numberOf2021Leftwards-1]) {//if the new number becomes one of the 2021 numbers, then this gets executednumberOf2021Leftwards--;//update the location of the new 2021 numberlocationOf2021[3-numberOf2021Leftwards] = firstNon2021;}for(int i = 0; i < firstNon2021; i++) {current2021[i] = 0;}for(int i = 0; i < numberOf2021Leftwards; i++) {current2021[i] = the2021Numbers[i];locationOf2021[3-i] = i;//manually set the correct 0 location}for(int i = locationOf2021[0]-1; i > 0; i--) {if(current2021[i] == 0) {locationOf2021[1] = i;//System.out.println(i);break;}}/*if(numberOf2021Leftwards > 2 && locationOf2021[0] > firstNon2021-1) {locationOf2021[1] = firstNon2021-1;}*/for(int i = 0; i < 5; i++) {boolean matches = false;for(int j = 0; j < 4; j++) {if(i == locationOf2021[j]) {matches = true;break;}}if(!matches) {firstNon2021 = i;break;}}numberOf2021Leftwards = firstNon2021;}return current2021;}}
Test details
Test 1
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
10 |
correct output |
---|
20214 |
user output |
---|
20214 |
Test 2
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
359 |
correct output |
---|
202661 |
user output |
---|
202661 |
Test 3
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
392 |
correct output |
---|
202819 |
user output |
---|
202819 |
Test 4
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
715 |
correct output |
---|
230721 |
user output |
---|
230721 |
Test 5
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
278 |
correct output |
---|
202219 |
user output |
---|
202219 |
Test 6
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
296 |
correct output |
---|
202318 |
user output |
---|
202318 |
Test 7
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
427 |
correct output |
---|
203214 |
user output |
---|
203214 |
Test 8
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
565 |
correct output |
---|
208212 |
user output |
---|
208212 |
Test 9
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
289 |
correct output |
---|
202311 |
user output |
---|
202311 |
Test 10
Group: 1, 2, 3, 4
Verdict: ACCEPTED
input |
---|
342 |
correct output |
---|
202581 |
user output |
---|
202581 |
Test 11
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
964486 |
correct output |
---|
182502018 |
user output |
---|
182502018 |
Test 12
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
110979 |
correct output |
---|
20296916 |
user output |
---|
20296916 |
Test 13
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
759149 |
correct output |
---|
126108721 |
user output |
---|
126108721 |
Test 14
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
234934 |
correct output |
---|
25023210 |
user output |
---|
25023210 |
Test 15
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
610310 |
correct output |
---|
120288133 |
user output |
---|
120288133 |
Test 16
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
956690 |
correct output |
---|
182027419 |
user output |
---|
182027419 |
Test 17
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
608459 |
correct output |
---|
120281827 |
user output |
---|
120281827 |
Test 18
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
944777 |
correct output |
---|
175260251 |
user output |
---|
175260251 |
Test 19
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
880780 |
correct output |
---|
152270421 |
user output |
---|
152270421 |
Test 20
Group: 2, 3, 4
Verdict: ACCEPTED
input |
---|
418357 |
correct output |
---|
68202361 |
user output |
---|
68202361 |
Test 21
Group: 3, 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
713294506861 |
correct output |
---|
20099206371786 |
user output |
---|
(empty) |
Test 22
Group: 3, 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
191431126351 |
correct output |
---|
4193020274761 |
user output |
---|
(empty) |
Test 23
Group: 3, 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
778422318223 |
correct output |
---|
20247733120134 |
user output |
---|
(empty) |
Test 24
Group: 3, 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
931090767075 |
correct output |
---|
20691282041612 |
user output |
---|
(empty) |
Test 25
Group: 3, 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
198806129726 |
correct output |
---|
4275365802196 |
user output |
---|
(empty) |
Test 26
Group: 3, 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
724343399444 |
correct output |
---|
20128443204610 |
user output |
---|
(empty) |
Test 27
Group: 3, 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
105064053560 |
correct output |
---|
2350677231115 |
user output |
---|
(empty) |
Test 28
Group: 3, 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
236866700902 |
correct output |
---|
5872395029521 |
user output |
---|
(empty) |
Test 29
Group: 3, 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
696349488695 |
correct output |
---|
20034225603103 |
user output |
---|
(empty) |
Test 30
Group: 3, 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
30929267826 |
correct output |
---|
1205256095901 |
user output |
---|
(empty) |
Test 31
Group: 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
576379198814226780 |
correct output |
---|
4185251600926331891 |
user output |
---|
(empty) |
Test 32
Group: 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
291698664446913099 |
correct output |
---|
2280132983584730156 |
user output |
---|
(empty) |
Test 33
Group: 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
693146378550043345 |
correct output |
---|
5270258230724009910 |
user output |
---|
(empty) |
Test 34
Group: 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
685982323362439932 |
correct output |
---|
5236052744416920782 |
user output |
---|
(empty) |
Test 35
Group: 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
838865925103308874 |
correct output |
---|
6800200426815679149 |
user output |
---|
(empty) |
Test 36
Group: 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
766426223219980635 |
correct output |
---|
6112960212822572807 |
user output |
---|
(empty) |
Test 37
Group: 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
652970397451919317 |
correct output |
---|
4923188580186259818 |
user output |
---|
(empty) |
Test 38
Group: 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
188458586650539464 |
correct output |
---|
1903508375720755921 |
user output |
---|
(empty) |
Test 39
Group: 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
157646989818721527 |
correct output |
---|
1525038392797601315 |
user output |
---|
(empty) |
Test 40
Group: 4
Verdict: TIME LIMIT EXCEEDED
input |
---|
898606361978236778 |
correct output |
---|
7326676702587314407 |
user output |
---|
(empty) |