zoukankan      html  css  js  c++  java
  • 【CoreForces Round #104D】Lucky Number 2

    D - Lucky Number 2
    题意:幸运数字由4和7组成,现在给出一个数字,已知4的个数,7的个数,47的个数和74的个数。
    求解出这个数字(要求最小)
    题解:一个构造题

    [abs(47的个数 - 74的个数) > 1 ]

    [4和7的个数不足无法构造 ]

    满足以上条件时,无法构成,其他情况时,优先存放4,取最小值。

    #include <cstdio>
    #include <string>
    #include <iostream>
    using namespace std;
    int abs(int a){
        return a<0?-a:a;
    }
    int main(){
        int a,b,c,d;
        scanf("%d%d%d%d",&a,&b,&c,&d);
        if(abs(c-d)>1){
            printf("-1
    ");
            return 0;
        }
        string s;
        if(c==d+1){
            for(int i=0;i<c;i++){
                s+="47";
            }
        }
        if(c+1==d){
            for(int i=0;i<d;i++){
                s+="74";
            }
        }
        if(c==d){
            for(int i=0;i<c;i++){
                s+="47";
            }
            if(a>c)s+="4";
            else s="7"+s;
        }
        int ls=0,lt=0;
        for(int i=0;i<s.length();i++){
            if(s[i]=='4')ls++;
            else lt++;
        }
        if(ls>a||lt>b){
            printf("-1
    ");
        }
        else{
            int fa=1;
            int na=a-ls,nb=b-lt;
            for(int i=0;i<s.length();i++){
                if(s[i]=='4'&&fa){
                    fa=0;
                    while(na--){
                        printf("4");
                    }
                }
                if(s[i]=='7'){
                    lt--;
                    if(lt==0){
                        while(nb--){
                            printf("7");
                        }
                    }
                }
                printf("%c",s[i]);
            }
        }
        return 0;
    }
    
  • 相关阅读:
    ashx session
    jquery-tmpl中添加js判断
    问题与解决方案
    VS2013打包发布 winform程序
    Sorket通信
    加载页面菜单,原来也可以这么写
    pm2模块编写入门
    使用PouchDB来实现React离线应用
    让fetch也可以timeout
    使用JSON Schema来验证接口数据
  • 原文地址:https://www.cnblogs.com/Vagrant-ac/p/12151787.html
Copyright © 2011-2022 走看看