codeforces37C
CF37C Old Berland Language
sol:直接暴力模拟下去,长度加了就补0,凑个数就+1,凑不好就puts(“no”)
#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
ll s=; bool f=; char ch=' ';
while(!isdigit(ch)) {f|=(ch=='-'); ch=getchar();}
while(isdigit(ch)) {s=(s<<)+(s<<)+(ch^); ch=getchar();}
return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
if(x<) {putchar('-'); x=-x;}
if(x<) {putchar(x+''); return;}
write(x/); putchar((x%)+'');
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int N=;
int n,nn,a[N],b[N],c[N];
vector<string>ans;
#define PB push_back
bool used[N];
inline bool add(string &s)
{
int i;
s[s.size()-]++;
for(i=s.size()-;i>;i--) if(s[i]=='') {s[i]=''; s[i-]++;}
return (s[]=='')?:;
}
int main()
{
freopen("codeforces37C_data.in","r",stdin);
int i,j;
string s;
R(n);
for(i=;i<=n;i++)
{
a[i]=b[i]=read(); c[a[i]]++;
}
sort(a+,a+n+); nn=unique(a+,a+n+)-a-;
a[]=;
// cout<<"nn="<<nn<<endl;
for(i=;i<=nn;i++)
{
for(j=a[i-]+;j<=a[i];j++) s+='';
bool flg=,oo;
for(;;)
{
// cout<<"c="<<c[a[i]]<<endl;
if(!c[a[i]]) break;
if(flg)
{
oo=add(s);
if(!oo) return puts("NO"),;
}
flg=; c[a[i]]--; ans.PB(s);
}
oo=add(s); if((!oo)&&(i!=nn)) return puts("NO"),;
}
// cout<<"ans.size()="<<ans.size()<<endl;
puts("YES");
for(i=;i<=n;i++)
{
for(j=;j<ans.size();j++) if(ans[j].size()==b[i]&&(!used[j]))
{
cout<<ans[j]<<endl; used[j]=; break;
}
}
return ;
}
codeforces37C的更多相关文章
随机推荐
- lumen路由配置nginx
nginx配置文件中添加: set $root_path '/data/www/m.domain.com/public'; root $root_path; location / { ...
- PHP变量的范围
1.局部变量 function test(){ $a=1;//局部变量$a,尽在这个函数内部有效 } echo $a; 2.全局变量 $i=10;//全局变量(外部变量) define('MY_NAM ...
- SAP ETL DS
如何设置Dataservices使用FTP传输方式_连接SAP系统 [如果DS的目标数据库选择使用Oracle,请务必确认以下数据库设置] If SAP R3 contents CJK charact ...
- TLS握手秘钥套件分析
1.为了弄清楚TLS1.3的内部结构,觉得有必要将TLS的整个结构从新整理一遍,方便后续在做握手协议的形式化分析的时候能够不遗漏每个加密和认证的的环节. TLS1.3不论文在协议内容上还是性能上都较之 ...
- Linux系统用终端打开图片
一.现在开发多数使用的系统都是linux系统,但有的时候会遇到一些比较麻烦的小问题,比如:在某个文件夹中存入大量的图片时,想要查看某张图片的时候,当你使用图形化显示的时候,就会很卡,所以在这里我针对于 ...
- 创建yum私有库
简述 在Linux系统中安装软件的方法有三种,分别是rpm软件包安装.yum源安装与源代码编译安装,在用rpm软件包安装软件时会经常出现依赖性问题,导致安装繁琐,用源代码编译安装就更不用说了,相信 ...
- Session&Cookie&localStorage浅谈
Session&Cookie&localStorage 领导让我开发一个有两张信息表单需要提交页面的网站,我作为一名开发人员,这个需求太简单了,和领导说直接存session sessi ...
- 04-Dockerfile介绍与使用
什么是dockerfileDockerfile是由一系列命令和参数构成的脚本,这些命令用一基础镜像并最终创建一个新的镜像.1.对于开发人员:可以为开发团队提供一个完全一致的开发环境.2.对于测试人员: ...
- jQuery toast 淡入淡出提示
#toast{ position: fixed; top: 44%;left:50%;transform: translateX(-50%); min-width: 80px; max-width: ...
- ask confirm shell
#/bin/bash BASEDIR=$(cd $() && pwd) cd $BASEDIR>/dev/null usage="Usage: $0 -o/--org ...