Task: | 2021-luvut |
Sender: | T |
Submission time: | 2020-10-11 08:58:46 +0300 |
Language: | C++ (C++11) |
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.01 s | 1, 2, 3, 4 | details |
#2 | ACCEPTED | 0.01 s | 1, 2, 3, 4 | details |
#3 | ACCEPTED | 0.01 s | 1, 2, 3, 4 | details |
#4 | ACCEPTED | 0.01 s | 1, 2, 3, 4 | details |
#5 | ACCEPTED | 0.01 s | 1, 2, 3, 4 | details |
#6 | ACCEPTED | 0.01 s | 1, 2, 3, 4 | details |
#7 | ACCEPTED | 0.01 s | 1, 2, 3, 4 | details |
#8 | ACCEPTED | 0.01 s | 1, 2, 3, 4 | details |
#9 | ACCEPTED | 0.01 s | 1, 2, 3, 4 | details |
#10 | ACCEPTED | 0.01 s | 1, 2, 3, 4 | details |
#11 | ACCEPTED | 0.33 s | 2, 3, 4 | details |
#12 | ACCEPTED | 0.04 s | 2, 3, 4 | details |
#13 | ACCEPTED | 0.26 s | 2, 3, 4 | details |
#14 | ACCEPTED | 0.09 s | 2, 3, 4 | details |
#15 | ACCEPTED | 0.21 s | 2, 3, 4 | details |
#16 | ACCEPTED | 0.33 s | 2, 3, 4 | details |
#17 | ACCEPTED | 0.21 s | 2, 3, 4 | details |
#18 | ACCEPTED | 0.32 s | 2, 3, 4 | details |
#19 | ACCEPTED | 0.30 s | 2, 3, 4 | details |
#20 | ACCEPTED | 0.14 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
/*** Datat?hti 2021 alku* 2021-luvut/2021s* @author TRS*///Include#include <bits/stdc++.h>#include <iostream>#include <algorithm>#include <utility>#include <list>#include <queue>#include <cmath>#include <climits>#include <vector>#include <string>#include <regex>//Definitionsusing namespace std;using ll = long long;typedef pair<int, int> pii;typedef pair<long long, long long> pll;typedef pair<string, string> pss;typedef vector<int> vi;#define pb push_back#define mp std::make_pair#define mt make_tuple//Constants#define infinity 0x3f3f3f3f#define linfinity 0x3f3f3f3f3f3f3f3f#define MOD 1000000007ll n;int main() {ios_base::sync_with_stdio(false);cin.tie(NULL);cin>>n;if (n == 1) {cout<<2021<<"\n";return 0;} else if (n == 2) {cout<<12021<<"\n";return 0;}ll number = 12021;for (ll k = 3; k <= n; k++) {ll len = 0;ll A = 0, B = 0, C = 0, D = 0;ll a = 0, b = 0, c = 0, d = 0, e = 0;ll la = 0, lb = 0, lc = 0, ld = 0, le = 0;ll temp = number;ll div = 1000000000000000000;for (ll i = 19; i >= 5; i--) {if (number / div != 0) {len = i;break;}div /= 10;}for (ll i = len; i >= 1; i--) {if (A == 0) {if (temp / div == 2) {A = i;a /= 10;} else {la++;a += (temp / div);a *= 10;}temp %= div;div /= 10;continue;}if (A != 0 && B == 0) {if (temp / div == 0) {B = i;b /= 10;} else {lb++;b += (temp / div);b *= 10;}temp %= div;div /= 10;continue;}if (B != 0 && C == 0) {if (temp / div == 2) {C = i;c /= 10;} else {lc++;c += (temp / div);c *= 10;}temp %= div;div /= 10;continue;}if (C != 0 && D == 0) {if (temp / div == 1) {D = i;d /= 10;} else {ld++;d += (temp / div);d *= 10;}temp %= div;div /= 10;continue;}if (D != 0) {le++;e += (temp / div);e *= 10;temp %= div;div /= 10;continue;}}e /= 10;if (le >= 1) {number += 1;if (number / (ll)pow(10, D - 1) % 10 == 2) {number += 1;}} else if (ld >= 1) {ll increment = (ll)pow(10, D);number += increment;if (number / (ll)pow(10, (C - 1)) % 10 == 3) {number += increment;number += increment;} else {d++;ll hasOne = 0;for (ll i = 1; i <= ld; i++) {if (d % 10 == 1) {hasOne = 1;break;} else {d /= 10;}}if (hasOne) {number -= (ll)pow(10, D - 1);}}} else if (lc >= 1) {ll increment = pow(10, C);number += increment;c++;ll hasTwo = 0;for (ll i = 1; i <= lc; i++) {if (c % 10 == 2) {hasTwo = 1;break;} else {c /= 10;}}if (hasTwo) {number -= (ll)pow(10, C - 1);number -= (ll)pow(10, C - 1);}} else if (lb >= 1) {ll increment = (ll)pow(10, B);number += increment;if (number / (ll)pow(10, (A - 1)) % 10 == 3) {number += increment;number += increment;}} else if (la >= 1) {ll increment = pow(10, A);number += increment;ll div = 1000000000000000000, temp = number, newA = 0;for (ll i = 19; i >= 4; i--) {if (temp / div == 2) {newA = i;break;} else {temp %= div;div /= 10;}}if (newA > A) {number -= (ll)pow(10, A - 1);number -= (ll)pow(10, A - 1);}}}cout<<number;return 0;}
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) |