#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
int w,s;
string str;
vector<int> num;
// int num[N];
int sum;
int ne;
int coded(int h,int l)
{
return 30*h + l;
}
int main()
{
cin >> w >> s;
cin >> str;
/** A :65 a:97 0:48*/
int pre_mode = 0; // 1:'A' 2:'a' 3:1
for(int i=0;i < (int)str.size();i++) // 前面不是小写,现在是小写,就+27. 如果不是数字,要转成数字28. 转成大写, 如果之前是数字,就28,如果是小写,就28 28
{
char ch = str[i];
if( 'A' <= ch && ch <= 'Z')
{
if(pre_mode == 3)
{
num.push_back(28);
}
if(pre_mode == 2)
{
num.push_back(28);
num.push_back(28);
}
num.push_back(ch-65);
pre_mode = 1;
}
else if('a' <= ch && ch <= 'z')
{
if(pre_mode != 2)
{
num.push_back(27);
}
num.push_back(ch-97);
pre_mode = 2;
}
else // 数字
{
if(pre_mode != 3)
{
num.push_back(28);
}
num.push_back(ch - 48);
pre_mode = 3;
}
}
if((int)num.size() % 2 != 0)
{
num.push_back(29);
}
/*
for(int i=0;i < (int)num.size();i++)
{
cout << num[i] << " ";
}
*/
int ma = ((int)num.size() / 2);
sum = ma + 1;
if(sum % w == 0)
{
ne = 0;
}
else
{
ne = w - (sum % w);
}
sum += ne;
cout << sum << endl;
for(int i=0;i < (int)num.size();i = i+2)
{
cout << coded(num[i],num[i+1]) << endl;
}
for(int i=0;i < ne;i++)
{
cout << 900 << endl;
}
return 0;
}
/*
5 -1
HE1lo
*/
CSP 登机牌条码(40分)
最新推荐文章于 2024-04-26 10:21:53 发布