求助求助,为什么编译失败了呢
查看原帖
求助求助,为什么编译失败了呢
297479
Irisss楼主2023/6/28 22:49

不用帮我优化代码,帮我找找为什么编译失败了谢谢了

#include<bits/stdc++.h>
using namespace std;

int len[100000];
int sta[100010];
int end[100010];

int main(){
	int n;
	cin>>n;
	int max=-10;
	for(int i=1;i<=n;i++){
		cin>>sta[i]>>end[i];
		if(end[i]>max){
			max=end[i];
		}
	}
	
	for(int i=1;i<=n;i++){
		for(int j=i;j<=n;j++){
			if(sta[i]>sta[j]){
				swap(sta[i],sta[j]);
				swap(end[i],end[j]);
			}
		}
	}

//检查排序结果 
//	for(int i=1;i<=n;i++){cout<<sta[i]<<" "<<end[i]<<endl;}
	
	int pin=1;
	for(int i=1;i<=n-1;i++){
		if(sta[i]==sta[i+1]){
			len[pin]++;
		}
		else if(sta[i]!=sta[i+1]){
			len[pin]++;
			pin++;
		}
	}
	len[pin]++;
	
//	for(int i=1;i<=pin;i++){
//		cout<<len[i]<<" ";
//	}
//  pin 为开头的种类
	
	cout<<endl;
	int ans=0;
	int pin1=1;
	int pin2=1;
	int front=0;
	//front 存储前面走掉的空间 
	while(pin2<max){
		int minend=1000000;
		for(int i=front+1;i<=front+len[pin1];i++){
		//找end最小的 
			if(minend>end[i]){
				minend=end[i];
			}
		}
		//检查考试顺序 
//		cout<<"从"<<sta[front+1]<<"到"<<minend<<endl; 
		pin2=minend;
		while(sta[pin1]<minend){
			pin1++;
			front+=len[pin1];
		}
		ans++;
	}
	cout<<ans;
		
	return 0;
}
2023/6/28 22:49
加载中...