Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ID: mickyta1
- TASK: preface
- LANG: C++
- */
- #include <bits/stdc++.h>
- using namespace std;
- const int N = 7 + 5;
- int np, ans[N];
- char str[N] = "IVXLCDM";
- void AddRoman(int n){
- int tmp;
- if(n / 1000 > 0){
- tmp = n / 1000;
- ans[6] += tmp;
- n %= 1000;
- }
- if(n / 100 > 0){
- tmp = n / 100;
- if(tmp == 9){
- ++ans[6];
- ++ans[4];
- } else if(tmp == 4){
- ++ans[5];
- ++ans[4];
- } else {
- if(tmp >= 5){
- ++ans[5];
- tmp -= 5;
- }
- ans[4] += tmp;
- }
- n %= 100;
- }
- if(n / 10 > 0){
- tmp = n / 10;
- if(tmp == 9){
- ++ans[4];
- ++ans[2];
- } else if(tmp == 4){
- ++ans[3];
- ++ans[2];
- } else {
- if(tmp >= 5){
- ++ans[3];
- tmp -= 5;
- }
- ans[2] += tmp;
- }
- n %= 10;
- }
- tmp = n;
- if(tmp == 9){
- ++ans[2];
- ++ans[0];
- } else if(tmp == 4){
- ++ans[1];
- ++ans[0];
- } else {
- if(tmp >= 5){
- ++ans[1];
- tmp -= 5;
- }
- ans[0] += tmp;
- }
- return;
- }
- int main(){
- freopen("preface.in", "r", stdin);
- freopen("preface.out", "w", stdout);
- scanf("%d", &np);
- for(int i = 1; i <= np; ++i){
- AddRoman(i);
- }
- int upb;
- for(upb = 6; upb >= 0; --upb){
- if(ans[upb] > 0){
- break;
- }
- }
- for(int i = 0; i <= upb; ++i){
- cout << str[i] << ' ' << ans[i] << '\n';
- }
- fclose(stdin);
- fclose(stdout);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement