栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 1861 Gas Station Numbers

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 1861 Gas Station Numbers

#include<iostream>#include<vector>#include<string.h>#include<stdio.h>#include<algorithm>#include<cmath>using namespace std;enum {    SIZ = 40,};char rep[10] = {0, 1, 5, 3, 4, 2, 9, 7, 8, 6};char dig[SIZ];int len;int fun(){    int i, t = dig[len], hi;    if(rep[t] > t){        dig[len] = rep[t];        return 1;    }    hi = t;    for(i=len-1; i>=0; i--){        t = dig[i];        if(t < hi || rep[t] > t){ int k=i; for(int j=i+1;j<=len;j++){     t = dig[j];     if(t > dig[i] && t <= hi){         hi = t;         k = j;     }     if(rep[t] > dig[i] && rep[t] <= hi){         hi = rep[t];         dig[j] = rep[t];         k = j;     } } t = dig[i]; if(rep[t] > t && (hi < t || hi > rep[t])){     dig[i] = rep[t]; } else {     swap(dig[i], dig[k]); } for(k= i+1; k<=len; k++){     dig[k] = min(dig[k], rep[dig[k]]); } sort(dig+i+1, dig+len+1); return 1;        }        hi = max(hi, t);    }    return 0;}void trim(){    len = 0;    for(int i=0; dig[i]; i++){        if(dig[i]!='.'){ dig[len++] = dig[i] - '0';        }    }    dig[len--] = 0;}void output(int s){    if(s <=0){        printf("The price cannot be raised.n");        return ;    }    for(s=0; s<len; s++){        printf("%d", dig[s]);    }    printf(".%dn", dig[len]);}int main(){    scanf("%s", dig);    while(dig[0]!='.'){        trim();        output(fun());        scanf("%s", dig);    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/365548.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号