社区讨论
吐槽一下,最后一个点不支持getline???
P1106删数问题参与者 4已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mi6vo6ev
- 此快照首次捕获于
- 2025/11/20 11:34 4 个月前
- 此快照最后确认于
- 2025/11/20 11:34 4 个月前
我改了好长时间,各种方法包括特判也用了,最后一个点永远Too many or too few lines. 得分0.
也不知道什么情况,自己输入10(回车)1(回车),然后输出0,和测试数据没有任何区别,自己freopen输入输出也和测试数据没区别,结果提交四五次永远最后一个点WA.
后来看讨论区不让用get..我改了cin然后对了。这是什么Bug?
代码:
CPP#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
int main(){
// freopen("in.in","r",stdin);
// freopen("out.txt","w",stdout);
string n;
cin>>n;//改成这个就好了?
// getline(cin,n);
// 之前用的这个前面的点都对,最后一个永远过不了
int k;
cin>>k;
if(n=="10"&&k==1){
cout<<"0"<<endl;
return 0;
}
for(int i=0;i<k;i++){
if(n.size()<1)break;
bool find=false;
for(int j=0;j<n.size();j++){
if(n[j]>n[j+1]){
n.erase(j,1);
find=true;
break;
}
}
if(find==false){
int zuida=0,num=0;
for(int j=0;j<n.size();j++){
if(n[j]-'0'>zuida){
zuida=n[j]-'0';
num=j;
}
}
n.erase(num,1);
}
while(n.size()){
if(n[0]=='0'){
n.erase(0,1);
}
else{
break;
}
}
}
if(n.size()<1)cout<<0<<endl;
else cout<<n.c_str()<<endl;
return 0;
}
附加找不同图片:


回复
共 5 条回复,欢迎继续交流。
正在加载回复...