社区讨论

关于那一道红题,我看了老师的代码小脑都萎缩了

灌水区参与者 5已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@m4dig0j7
此快照首次捕获于
2024/12/07 09:43
去年
此快照最后确认于
2024/12/07 10:15
去年
查看原帖
老师表示这道题确实可以用以前的知识来做,但是看了老师的代码,脑袋都炸了,什么玩意啊
CPP
#include<bits/stdc++.h>
using namespace std;
int n,a[100001],c[100001],r[100001];
bool cmp(const int &x,const int &y){
	if(a[x]!=a[y]){
		return a[x]<a[y];
	}
	return x<y;
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
		c[i]=i;
	}
	sort(c+1,c+n+1,cmp);
	for(int i=1;i<=n;i++){
		printf("%d ",a[c[i]]);
	}
	printf("\n");
	for(int i=1;i<=n;i++){
		r[c[i]]=i;
	}
	for(int i=1;i<=n;i++){
		printf("%d " ,r[i]);
	}
	return 0;
} 
对了,先对一下大佬表示感谢啊 chenyixuan180IKUN54088DSdaluQT___A8cde@Kuroba_kaito@Kuroba_kaito@MLE_Automaton@cly312 但是以上各位大佬啊,这个方法我又双叒看不懂啊,所有的我都会,为什么连起来就认不到了啊,什么原理啊

回复

7 条回复,欢迎继续交流。

正在加载回复...