using namespace std;
int main()
{
string a;
int k,i;
cin>>a>>k;
if(k>=a.size())
a.erase();
else while(k>0)
{
for(i=1;i<a.size()-1&&(a[i]<=a[i+1]);++i);
a.erase(i,1);
k--;
}
while(a.size()>1&&a[i]==0)
{
a.erase(0,1);
}
cout<<a<<endl;
return 0;
}
2
#include<bits/stdc++.h>
using namespace std;
double greedy(vector<int>client,int s)
{
vector<int>service(s+1,0);//窗口数目
vector<int>sum(s+1,0);//各个窗口总计时间
int n=client.size();
sort(client.begin(),client.end());//排序
int i=0;
int j=0;//i,j,分别为人数和窗口的指针
while(i<n)
{
service[j]+=client[i];
sum[j]+=service[j];//每个窗口服务时间总和;
i++;j++;
if(j==s)j=0;//对这几个窗口依次循环下去
}
double t=0;
for(i=0;i<s;++i)
{
t+=sum[i];//各个窗口时间之和
}
t/=n;
return t;
}
int main()
{
int n,s,i,a[1000];
vector<int>client;//定义动态数组
cin>>n>>s;
for(i=0;i<n;++i)
{
cin>>a[i];
client.push_back(a[i]);//将a[i]插入vector<int>client中
}
cout<<fixed<<setprecision(3)<<greedy(client,s);
return 0;
}
3
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i,j,max,k,move[1000],n,t,from,to;
memset(move,0,sizeof(move));
cin>>t;
for(i=0;i<t;++i)
{
cin>>n;
for(j=0;j<n;++j)
{
cin>>from>>to;
from=(from-1)/2;
to=(to-1)/2;//将房间号码映射为走廊序号
if(to<from)
{
swap(to,from);
}
for(k=from;k<=to;++k)
{
move[k]++;//每个走廊经历几遍
}
}
max=0;
for(k=0;k<=200;++k)
{
if(move[k]>max)
{
max=move[k];//寻找走的次数最多的走廊
}
}//i,j,k
cout<<max*10<<endl;
}
}
4
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,i,s=0,step=0,ave,a[1000];
cin>>n;
for(i=1;i<=n;++i)
{
cin>>a[i];
s+=a[i];
}
ave=s/n;
for(i=1;i<=n;++i)
{
a[i]-=ave;
}
i=1;int j=n;
while(i<n&&a[i]==0)i++;
while(j>1&&a[j]==0)j--;
while(i<j)
{
a[i+1]+=a[i];
a[i]=0;
step++;
++i;
while(a[i]==0&&i<j)++i;//相邻0的情况
}
cout<<step;
return 0;
}