1 条题解
-
0
C :
#include<stdio.h> # define N 10000 int del(int a[],int n); int bubblesort(int a[],int n); int locate(int a[],int b,int n); int main() { int a[N],b[N],i,j,n,num,z; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { scanf("%d",&a[i]); b[i]=a[i]; } bubblesort(a,n); num=del(a,n); for(z=0;z<n-1;z++) printf("%d ",locate(a,b[z],num)); printf("%d\n",locate(a,b[n-1],num)); } return 0; } int del(int a[],int n) { int i,j,k; for(i=0,j=i+1;j<n;j++) { if(a[i]!=a[j]) { if((k=j-i-1)!=0) while(j<n) { a[j-k]=a[j]; j++; } i++; j=i; n=n-k; } } if(a[n-2]==a[n-1]) n--; return n; } int bubblesort(int a[],int n) { int i,j,temp; for(i=0;i<n;i++) for(j=i;j<n;j++) if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; } return 0; } int locate(int a[],int b,int n) { int i,j,k; for(i=0;i<n;i++) if(a[i]==b) return i+1; }
C++ :
#include<stdio.h> #include <algorithm> #include <stdlib.h> #include <map> #include <string.h> using namespace std; int main(){ int n,*arr,*arr2; map<int,int> mymap; while(scanf("%d",&n) != EOF){ arr =(int*)malloc(sizeof(int)*n); arr2 = (int*)malloc(sizeof(int)*n); for(int i=0;i<n;i++){ scanf("%d",&arr[i]); arr2[i] = arr[i]; } sort(arr2,arr2+n); int index = 0; for(int i=0; i<n; i++){ mymap.insert(pair<int,int>(arr2[i],index)); //插入数字和对应的 排名 index ++; if( i!=0 && arr2[i]==arr2[i-1]) index --; } for(int i=0; i<n; i++){ if(i==0) printf("%d",mymap.find(arr[i])->second+1); else printf(" %d",mymap.find(arr[i])->second+1); } printf("\n"); } return 0; }
Pascal :
program p2040(Input,Output); var n,i,j:longint; a,b,t:array[1..19999] of longint; procedure qsort(l,r:longint); var i,j,p,mid:longint; begin i:=l; j:=r; mid:=a[(l+r) div 2]; repeat while a[i]<mid do inc(i); while a[j]>mid do dec(j); if i<=j then begin p:=a[i]; a[i]:=a[j]; a[j]:=p; p:=t[i]; t[i]:=t[j]; t[j]:=p; inc(i); dec(j); end; until i>j; if l<j then qsort(l,j); if i<r then qsort(i,r); end; begin while not eof do begin readln(n); for i:=1 to n do begin read(a[i]); b[i]:=a[i]; t[i]:=i; end; qsort(1,n); for i:=1 to n do begin for j:=1 to n do if b[i]=a[j] then begin if i<n then write(j,' ') else writeln(j); end; end; end; end.
- 1
信息
- ID
- 2113
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者