# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
722691 | 2023-04-12T16:36:09 Z | HamletPetrosyan | Boarding Passes (BOI22_passes) | C++17 | 1212 ms | 668 KB |
/// -- -- ---- --- -- -- /// 12.04.2023 Wed 20:35 /// -- -- ---- --- -- -- #include <bits/stdc++.h> using namespace std; void abandoned_precalc(); #define pll pair<long long, long long> #define all(a) (a).begin(), (a).end() #define len(a) ((long long)(a).size()) #define add push_back #define mkp make_pair #define ll long long #define fr first #define sc second const long long INF = 1000000000ll * 1000000003ll; const long long MOD = 1000000007ll; const int N = 2e5 + 5, G = 10; string s; ll ans4 = INF; ll dp[(1 << G)]; ll asc[N], pref[N], suf[N]; ll cnt[N], sc; int o(char x){ return x - 'A'; } void solve(){ cin >> s; // for(ll i = 0; i <= len(s); i++){ // ans4 = min(ans4, i * (i - 1) + (len(s) - i) * (len(s) - i - 1)); // } // cout << (double)ans4 / 4. << "\n"; for(int i = 0; i < len(s); i++) asc[o(s[i])]++; // for(int i = 0; i <= G; i++) cout << asc[i] << " "; // cout << "\n"; for(int mask = 1; mask < (1 << G); mask++){ dp[mask] = INF; fill(cnt, cnt + G, 0); sc = 0; for(int i = len(s) - 1; ~i; i--){ if(!(mask & (1 << o(s[i])))) continue; sc++; cnt[o(s[i])]++; suf[o(s[i])] += sc - cnt[o(s[i])]; pref[o(s[i])] = 0; } for(int i = 0; i < G; i++){ if(!(mask & (1 << i))) continue; dp[mask] = min(dp[mask], dp[mask ^ (1 << i)] + suf[i] * 4 + cnt[i] * (cnt[i] - 1)); } for(int i = 0, pc = 0; i < len(s); i++){ if(!(mask & (1 << o(s[i])))) continue; suf[o(s[i])] -= sc - cnt[o(s[i])]; sc--; cnt[o(s[i])]--; pc++; pref[o(s[i])] += pc - asc[o(s[i])] + cnt[o(s[i])]; dp[mask] = min(dp[mask], dp[mask ^ (1 << o(s[i]))] + (pref[o(s[i])] + suf[o(s[i])]) * 4 + cnt[o(s[i])] * (cnt[o(s[i])] - 1) + (asc[o(s[i])] - cnt[o(s[i])]) * (asc[o(s[i])] - cnt[o(s[i])] - 1)); } } cout << (double)dp[(1 << G) - 1] / 4. << "\n"; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int _ = 1; cout << fixed; cout.precision(9); abandoned_precalc(); // cin >> _ ; while(_--) solve(); return 0; } /// ---- - -------- ------ -------- -- - - - /// just a reminder. ubuntu password is i o i /// ---- - -------- ------ -------- -- - - - void abandoned_precalc(){ }
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 11 ms | 340 KB | found '100800.5000000000', expected '100800.5000000000', error '0.0000000000' |
2 | Correct | 1 ms | 340 KB | found '0.0000000000', expected '0.0000000000', error '-0.0000000000' |
3 | Correct | 1 ms | 340 KB | found '0.0000000000', expected '0.0000000000', error '-0.0000000000' |
4 | Correct | 1 ms | 340 KB | found '1.0000000000', expected '1.0000000000', error '0.0000000000' |
5 | Correct | 14 ms | 360 KB | found '124002.0000000000', expected '124002.0000000000', error '0.0000000000' |
6 | Correct | 882 ms | 620 KB | found '772893586.0000000000', expected '772893586.0000000000', error '0.0000000000' |
7 | Correct | 1146 ms | 648 KB | found '1100977812.5000000000', expected '1100977812.5000000000', error '0.0000000000' |
8 | Correct | 1172 ms | 668 KB | found '1249950000.5000000000', expected '1249950000.5000000000', error '0.0000000000' |
9 | Correct | 1212 ms | 660 KB | found '1249975000.0000000000', expected '1249975000.0000000000', error '0.0000000000' |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 340 KB | found '1.0000000000', expected '1.0000000000', error '0.0000000000' |
2 | Correct | 2 ms | 340 KB | found '1225.0000000000', expected '1225.0000000000', error '0.0000000000' |
3 | Correct | 2 ms | 340 KB | found '1023.0000000000', expected '1023.0000000000', error '0.0000000000' |
4 | Correct | 2 ms | 340 KB | found '294.0000000000', expected '294.0000000000', error '0.0000000000' |
5 | Correct | 2 ms | 340 KB | found '1087.0000000000', expected '1087.0000000000', error '0.0000000000' |
6 | Correct | 1 ms | 340 KB | found '1.5000000000', expected '1.5000000000', error '0.0000000000' |
7 | Correct | 2 ms | 340 KB | found '703.0000000000', expected '703.0000000000', error '0.0000000000' |
8 | Correct | 1 ms | 340 KB | found '55.5000000000', expected '55.5000000000', error '0.0000000000' |
9 | Correct | 1 ms | 340 KB | found '56.0000000000', expected '56.0000000000', error '0.0000000000' |
10 | Correct | 1 ms | 340 KB | found '45.0000000000', expected '45.0000000000', error '0.0000000000' |
11 | Correct | 2 ms | 340 KB | found '66.5000000000', expected '66.5000000000', error '0.0000000000' |
12 | Correct | 1 ms | 340 KB | found '67.0000000000', expected '67.0000000000', error '0.0000000000' |
13 | Correct | 2 ms | 340 KB | found '66.0000000000', expected '66.0000000000', error '0.0000000000' |
14 | Correct | 1 ms | 340 KB | found '47.0000000000', expected '47.0000000000', error '0.0000000000' |
15 | Correct | 1 ms | 340 KB | found '50.0000000000', expected '50.0000000000', error '0.0000000000' |
16 | Correct | 1 ms | 340 KB | found '49.0000000000', expected '49.0000000000', error '0.0000000000' |
17 | Correct | 1 ms | 328 KB | found '57.0000000000', expected '57.0000000000', error '0.0000000000' |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 340 KB | found '1.0000000000', expected '1.0000000000', error '0.0000000000' |
2 | Correct | 2 ms | 340 KB | found '1225.0000000000', expected '1225.0000000000', error '0.0000000000' |
3 | Correct | 2 ms | 340 KB | found '1023.0000000000', expected '1023.0000000000', error '0.0000000000' |
4 | Correct | 2 ms | 340 KB | found '294.0000000000', expected '294.0000000000', error '0.0000000000' |
5 | Correct | 2 ms | 340 KB | found '1087.0000000000', expected '1087.0000000000', error '0.0000000000' |
6 | Correct | 1 ms | 340 KB | found '1.5000000000', expected '1.5000000000', error '0.0000000000' |
7 | Correct | 2 ms | 340 KB | found '703.0000000000', expected '703.0000000000', error '0.0000000000' |
8 | Correct | 1 ms | 340 KB | found '55.5000000000', expected '55.5000000000', error '0.0000000000' |
9 | Correct | 1 ms | 340 KB | found '56.0000000000', expected '56.0000000000', error '0.0000000000' |
10 | Correct | 1 ms | 340 KB | found '45.0000000000', expected '45.0000000000', error '0.0000000000' |
11 | Correct | 2 ms | 340 KB | found '66.5000000000', expected '66.5000000000', error '0.0000000000' |
12 | Correct | 1 ms | 340 KB | found '67.0000000000', expected '67.0000000000', error '0.0000000000' |
13 | Correct | 2 ms | 340 KB | found '66.0000000000', expected '66.0000000000', error '0.0000000000' |
14 | Correct | 1 ms | 340 KB | found '47.0000000000', expected '47.0000000000', error '0.0000000000' |
15 | Correct | 1 ms | 340 KB | found '50.0000000000', expected '50.0000000000', error '0.0000000000' |
16 | Correct | 1 ms | 340 KB | found '49.0000000000', expected '49.0000000000', error '0.0000000000' |
17 | Correct | 1 ms | 328 KB | found '57.0000000000', expected '57.0000000000', error '0.0000000000' |
18 | Correct | 1 ms | 340 KB | found '1.0000000000', expected '1.0000000000', error '0.0000000000' |
19 | Correct | 2 ms | 340 KB | found '1225.0000000000', expected '1225.0000000000', error '0.0000000000' |
20 | Correct | 2 ms | 340 KB | found '1023.0000000000', expected '1023.0000000000', error '0.0000000000' |
21 | Correct | 2 ms | 340 KB | found '294.0000000000', expected '294.0000000000', error '0.0000000000' |
22 | Correct | 2 ms | 332 KB | found '1087.0000000000', expected '1087.0000000000', error '0.0000000000' |
23 | Correct | 1 ms | 340 KB | found '1.5000000000', expected '1.5000000000', error '0.0000000000' |
24 | Correct | 2 ms | 340 KB | found '703.0000000000', expected '703.0000000000', error '0.0000000000' |
25 | Correct | 1 ms | 340 KB | found '55.5000000000', expected '55.5000000000', error '0.0000000000' |
26 | Correct | 1 ms | 340 KB | found '56.0000000000', expected '56.0000000000', error '0.0000000000' |
27 | Correct | 1 ms | 340 KB | found '45.0000000000', expected '45.0000000000', error '0.0000000000' |
28 | Correct | 1 ms | 340 KB | found '66.5000000000', expected '66.5000000000', error '0.0000000000' |
29 | Correct | 1 ms | 328 KB | found '67.0000000000', expected '67.0000000000', error '0.0000000000' |
30 | Correct | 1 ms | 340 KB | found '66.0000000000', expected '66.0000000000', error '0.0000000000' |
31 | Correct | 1 ms | 328 KB | found '47.0000000000', expected '47.0000000000', error '0.0000000000' |
32 | Correct | 1 ms | 340 KB | found '50.0000000000', expected '50.0000000000', error '0.0000000000' |
33 | Correct | 1 ms | 340 KB | found '49.0000000000', expected '49.0000000000', error '0.0000000000' |
34 | Correct | 1 ms | 340 KB | found '57.0000000000', expected '57.0000000000', error '0.0000000000' |
35 | Correct | 120 ms | 372 KB | found '12497500.0000000000', expected '12497500.0000000000', error '0.0000000000' |
36 | Correct | 119 ms | 380 KB | found '12495000.5000000000', expected '12495000.5000000000', error '0.0000000000' |
37 | Correct | 175 ms | 376 KB | found '12223392.0000000000', expected '12223392.0000000000', error '0.0000000000' |
38 | Correct | 125 ms | 376 KB | found '2372500.0000000000', expected '2372500.0000000000', error '0.0000000000' |
39 | Correct | 119 ms | 340 KB | found '12475017.5000000000', expected '12475017.5000000000', error '0.0000000000' |
40 | Correct | 115 ms | 340 KB | found '10655706.0000000000', expected '10655706.0000000000', error '0.0000000000' |
41 | Correct | 115 ms | 368 KB | found '11977895.5000000000', expected '11977895.5000000000', error '0.0000000000' |
42 | Correct | 119 ms | 384 KB | found '11977865.0000000000', expected '11977865.0000000000', error '0.0000000000' |
43 | Correct | 121 ms | 372 KB | found '11977907.5000000000', expected '11977907.5000000000', error '0.0000000000' |
44 | Correct | 118 ms | 464 KB | found '11977808.0000000000', expected '11977808.0000000000', error '0.0000000000' |
45 | Correct | 123 ms | 376 KB | found '11977791.0000000000', expected '11977791.0000000000', error '0.0000000000' |
46 | Correct | 118 ms | 340 KB | found '11977871.5000000000', expected '11977871.5000000000', error '0.0000000000' |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 11 ms | 340 KB | found '100800.5000000000', expected '100800.5000000000', error '0.0000000000' |
2 | Correct | 1 ms | 340 KB | found '0.0000000000', expected '0.0000000000', error '-0.0000000000' |
3 | Correct | 1 ms | 340 KB | found '0.0000000000', expected '0.0000000000', error '-0.0000000000' |
4 | Correct | 1 ms | 340 KB | found '1.0000000000', expected '1.0000000000', error '0.0000000000' |
5 | Correct | 14 ms | 360 KB | found '124002.0000000000', expected '124002.0000000000', error '0.0000000000' |
6 | Correct | 882 ms | 620 KB | found '772893586.0000000000', expected '772893586.0000000000', error '0.0000000000' |
7 | Correct | 1146 ms | 648 KB | found '1100977812.5000000000', expected '1100977812.5000000000', error '0.0000000000' |
8 | Correct | 1172 ms | 668 KB | found '1249950000.5000000000', expected '1249950000.5000000000', error '0.0000000000' |
9 | Correct | 1212 ms | 660 KB | found '1249975000.0000000000', expected '1249975000.0000000000', error '0.0000000000' |
10 | Correct | 1 ms | 340 KB | found '1.0000000000', expected '1.0000000000', error '0.0000000000' |
11 | Correct | 2 ms | 340 KB | found '1225.0000000000', expected '1225.0000000000', error '0.0000000000' |
12 | Correct | 2 ms | 340 KB | found '1023.0000000000', expected '1023.0000000000', error '0.0000000000' |
13 | Correct | 2 ms | 340 KB | found '294.0000000000', expected '294.0000000000', error '0.0000000000' |
14 | Correct | 2 ms | 340 KB | found '1087.0000000000', expected '1087.0000000000', error '0.0000000000' |
15 | Correct | 1 ms | 340 KB | found '1.5000000000', expected '1.5000000000', error '0.0000000000' |
16 | Correct | 2 ms | 340 KB | found '703.0000000000', expected '703.0000000000', error '0.0000000000' |
17 | Correct | 1 ms | 340 KB | found '55.5000000000', expected '55.5000000000', error '0.0000000000' |
18 | Correct | 1 ms | 340 KB | found '56.0000000000', expected '56.0000000000', error '0.0000000000' |
19 | Correct | 1 ms | 340 KB | found '45.0000000000', expected '45.0000000000', error '0.0000000000' |
20 | Correct | 2 ms | 340 KB | found '66.5000000000', expected '66.5000000000', error '0.0000000000' |
21 | Correct | 1 ms | 340 KB | found '67.0000000000', expected '67.0000000000', error '0.0000000000' |
22 | Correct | 2 ms | 340 KB | found '66.0000000000', expected '66.0000000000', error '0.0000000000' |
23 | Correct | 1 ms | 340 KB | found '47.0000000000', expected '47.0000000000', error '0.0000000000' |
24 | Correct | 1 ms | 340 KB | found '50.0000000000', expected '50.0000000000', error '0.0000000000' |
25 | Correct | 1 ms | 340 KB | found '49.0000000000', expected '49.0000000000', error '0.0000000000' |
26 | Correct | 1 ms | 328 KB | found '57.0000000000', expected '57.0000000000', error '0.0000000000' |
27 | Correct | 1 ms | 340 KB | found '1.0000000000', expected '1.0000000000', error '0.0000000000' |
28 | Correct | 2 ms | 340 KB | found '1225.0000000000', expected '1225.0000000000', error '0.0000000000' |
29 | Correct | 2 ms | 340 KB | found '1023.0000000000', expected '1023.0000000000', error '0.0000000000' |
30 | Correct | 2 ms | 340 KB | found '294.0000000000', expected '294.0000000000', error '0.0000000000' |
31 | Correct | 2 ms | 332 KB | found '1087.0000000000', expected '1087.0000000000', error '0.0000000000' |
32 | Correct | 1 ms | 340 KB | found '1.5000000000', expected '1.5000000000', error '0.0000000000' |
33 | Correct | 2 ms | 340 KB | found '703.0000000000', expected '703.0000000000', error '0.0000000000' |
34 | Correct | 1 ms | 340 KB | found '55.5000000000', expected '55.5000000000', error '0.0000000000' |
35 | Correct | 1 ms | 340 KB | found '56.0000000000', expected '56.0000000000', error '0.0000000000' |
36 | Correct | 1 ms | 340 KB | found '45.0000000000', expected '45.0000000000', error '0.0000000000' |
37 | Correct | 1 ms | 340 KB | found '66.5000000000', expected '66.5000000000', error '0.0000000000' |
38 | Correct | 1 ms | 328 KB | found '67.0000000000', expected '67.0000000000', error '0.0000000000' |
39 | Correct | 1 ms | 340 KB | found '66.0000000000', expected '66.0000000000', error '0.0000000000' |
40 | Correct | 1 ms | 328 KB | found '47.0000000000', expected '47.0000000000', error '0.0000000000' |
41 | Correct | 1 ms | 340 KB | found '50.0000000000', expected '50.0000000000', error '0.0000000000' |
42 | Correct | 1 ms | 340 KB | found '49.0000000000', expected '49.0000000000', error '0.0000000000' |
43 | Correct | 1 ms | 340 KB | found '57.0000000000', expected '57.0000000000', error '0.0000000000' |
44 | Correct | 120 ms | 372 KB | found '12497500.0000000000', expected '12497500.0000000000', error '0.0000000000' |
45 | Correct | 119 ms | 380 KB | found '12495000.5000000000', expected '12495000.5000000000', error '0.0000000000' |
46 | Correct | 175 ms | 376 KB | found '12223392.0000000000', expected '12223392.0000000000', error '0.0000000000' |
47 | Correct | 125 ms | 376 KB | found '2372500.0000000000', expected '2372500.0000000000', error '0.0000000000' |
48 | Correct | 119 ms | 340 KB | found '12475017.5000000000', expected '12475017.5000000000', error '0.0000000000' |
49 | Correct | 115 ms | 340 KB | found '10655706.0000000000', expected '10655706.0000000000', error '0.0000000000' |
50 | Correct | 115 ms | 368 KB | found '11977895.5000000000', expected '11977895.5000000000', error '0.0000000000' |
51 | Correct | 119 ms | 384 KB | found '11977865.0000000000', expected '11977865.0000000000', error '0.0000000000' |
52 | Correct | 121 ms | 372 KB | found '11977907.5000000000', expected '11977907.5000000000', error '0.0000000000' |
53 | Correct | 118 ms | 464 KB | found '11977808.0000000000', expected '11977808.0000000000', error '0.0000000000' |
54 | Correct | 123 ms | 376 KB | found '11977791.0000000000', expected '11977791.0000000000', error '0.0000000000' |
55 | Correct | 118 ms | 340 KB | found '11977871.5000000000', expected '11977871.5000000000', error '0.0000000000' |
56 | Incorrect | 1 ms | 336 KB | 1st numbers differ - expected: '7.5000000000', found: '6.0000000000', error = '0.2000000000' |
57 | Halted | 0 ms | 0 KB | - |