Codeforces Round #277.5 (Div. 2)C——Given Length and Sum of Digits...
and of ... Codeforces div round sum length
2023-09-11 14:20:42 时间
C. Given Length and Sum of Digits...
time limit per test
1 secondmemory limit per test
256 megabytesinput
standard inputoutput
standard outputYou have a positive integer m and a non-negative integer s. Your task is to find the smallest and the largest of the numbers that have length m and sum of digits s. The required numbers should be non-negative integers written in the decimal base without leading zeroes.
Input
The single line of the input contains a pair of integers m, s (1 ≤ m ≤ 100, 0 ≤ s ≤ 900) — the length and the sum of the digits of the required numbers.
Output
In the output print the pair of the required non-negative integer numbers — first the minimum possible number, then — the maximum possible number. If no numbers satisfying conditions required exist, print the pair of numbers "-1 -1" (without the quotes).
Sample test(s)
Input
2 15
Output
69 96
Input
3 0
Output
-1 -1
贪心,考虑最大的时候把数组赋值为9,考虑最小的时候把数组第一位赋值1。其它为赋值0
#include <map> #include <set> #include <list> #include <queue> #include <stack> #include <vector> #include <cmath> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; int s1[110], s2[110]; int main() { int m, s; while (~scanf("%d%d", &m, &s)) { if (s == 0 && m == 1) { printf("0 0\n"); continue; } if (m * 9 < s || s < 1) //每一位全是9都小于s,或者1.....0大于s { printf("-1 -1\n"); continue; } for (int i = 1; i <= m; ++i) { s1[i] = 0; s2[i] = 9; } s1[1] = 1; int dis = s - 1, cnt = m; while (1) { if (9 - s1[cnt] >= dis) { s1[cnt] += dis; break; } dis -= (9 - s1[cnt]); s1[cnt] = 9; cnt--; } for (int i = 1; i <= m; ++i) { printf("%d", s1[i]); } printf(" "); dis = m * 9 - s; cnt = m; while (1) { if (s2[cnt] >= dis) { s2[cnt] -= dis; break; } dis -= (s2[cnt]); s2[cnt] = 0; cnt--; } for (int i = 1; i <= m; ++i) { printf("%d", s2[i]); } printf("\n"); } return 0; }
相关文章
- 问题-delphi XE2 Stack Overflow- save your work and restart CodeGear
- [Javascript] Broadcaster + Operator + Listener pattern -- 27. combine multi broadcaster and compose operator to implement game logic
- [Javascript] Build lodash.omitBy and lodash.pickBy with Object.fromEntries + Object.entry (isomorphism)
- [Angular] Create custom validators for formControl and formGroup
- [Compose] 8. A curated collection of Monoids and their uses
- [Goolge map api v3] According to location to detect city and set viewport of this city
- Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules
- (纪录片)科学的故事:权力、证据与激情 The Story Of Science: Power, Proof And Passion
- [Cypress] install, configure, and script Cypress for JavaScript web applications -- part3
- [WASM Rust] Create and Publish a NPM Package Containing Rust Generated WebAssembly using wasm-pack
- [Angular] Updating and resetting FormGroups and FormControls
- between...and..
- Cloud for Customer Restriction and Exclusion Product Lists
- 【Codeforces 988D】Points and Powers of Two
- 【codeforces 546A】Soldier and Bananas
- Kyma registration of webservices and event endpoints
- Matlab:成功解决In an assignment A(I)=B,the number of elements in B and I must be the same
- ‘setuptools‘ is a dependency of conda and cannot be removed from
- 加载数据集(Dataset and DataLoader)
- typora This beta version of Typora is expired, please download and install a newer version. 解决方案
- 谣言检测——(GLAN)《Jointly embedding the local and global relations of heterogeneous graph for rumor detection》
- 3GPP TS 29244-g30 中英文对照 | 5.22.2 With one PFCP association per SMF Set and UPF
- CodeForce 439C Devu and Partitioning of the Array(模拟)
- Installation of NVIDIA Drivers in RHEL/CentOS and Fedora
- 转载:The Art of Test Team Management and Motivation