社区讨论

吐槽一下,最后一个点不支持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 条回复,欢迎继续交流。

正在加载回复...