评测机又出问题了吗
查看原帖
评测机又出问题了吗
390313
Zhang_kg楼主2021/6/23 00:16
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<malloc.h>
#include<ctype.h>
typedef struct node{
	char num;
	struct node* ptr;
}jj;
int main(){
	char all[300]={0};
	gets(all);
	int k, l=strlen(all);
	jj* head=calloc(1, sizeof(jj));
	jj* bef=calloc(1, sizeof(jj));
	bef=head;
	scanf("%d", &k);
	for(int i=0; i<l; i++){
		jj* a=calloc(1, sizeof(jj));
		a->num=all[i];
		bef->ptr=a;
		bef=bef->ptr;
	}
	int st=0, j=0, min=0, max=l-k;
	jj* pos;
	while(k&&st<max){
		for(bef=head, j=0; j<st&&bef; j++, bef=bef->ptr);
		jj* loop=(jj*)calloc(1, sizeof(jj));
		loop=bef->ptr;
		if(loop){
			min=loop->num;
			pos=loop;
		}
		for(j=0; j<k+1&&loop; loop=loop->ptr, j++){
			if(loop->num<min){
				//if(st==0&&loop->num=='0') continue;
				pos=loop;
				min=loop->num;
			}
		}
		for(bef=head, j=0; j<st&&bef; j++, bef=bef->ptr);
		for(loop=bef; loop&&loop->ptr!=pos&&k; k--, loop=loop->ptr);
		if(bef) bef->ptr=pos;
		st++;
	}
	jj* loop;
	int strain=0;
	int start=0, flag=0;
	for(loop=head->ptr; loop&&strain<max; strain++, loop=loop->ptr){
		if(!start&&loop->num=='0'){
			continue;
		}
		if(!start&&loop->num!=0){
			start++;
			flag=1;
		}
		printf("%c", loop->num);
	}
	if(!flag) putchar('0');
	return 0;
}

第7个点,是
10
1
0
我这里也能输出0 但是就是过不了

2021/6/23 00:16
加载中...