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> //Definitions using 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 1000000007 ll 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) |