最小表示法#7 WA求助
查看原帖
最小表示法#7 WA求助
627293
FanMingxuan楼主2023/11/23 13:32
#include<bits/stdc++.h>
using namespace std;

int minshow(const vector<int>& v,const int len){
	int i = 0,j = 1,k = 0;
	while(i < len && j < len && k < len){
		if(v[i + k] == v[j + k]){
			k ++;
			continue;
		}
		if(v[i + k] > v[j + k]) i += k + 1;
		else j += k + 1;
		if(i == j) j ++;
		k = 0;
	}
	return min(i,j);
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	int n;
	cin>>n;
	vector<int> v;
	for(int i = 1;i <= n;++ i){
		int x;
		cin>>x;
		v.push_back(x);
	}
	int ans = minshow(v,n);
	const int len = n;
	for(int i = 0;i < n;++ i) cout<<v[(ans + i) % len]<<" ";
	return 0;
}

2023/11/23 13:32
加载中...