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, 2 locationOf2021[1] = 2; //location of 0 locationOf2021[2] = 1; //location of 2 locationOf2021[3] = 0; //the location of the last 2021 number, 1. */ locationOf2021[0] = 3; //the location of the first number, 2 locationOf2021[1] = 2; //location of 0 locationOf2021[2] = 1; //location of 2 locationOf2021[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 increased current2021[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 locationOf2021 for(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 executed numberOf2021Leftwards--; //update the location of the new 2021 number locationOf2021[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) |