9 도 OJ - 제목 1167 - 배열 정렬 - 구조 체 배열 정렬
3656 단어 연구 생기 시험알고리즘 과 데이터 구조북 항기 시험
원본 링크:http://ac.jobdu.com/problem.php?pid=1167
제목 설명:
배열 의 값 을 입력 하여 각 값 이 작은 것 에서 큰 것 으로 정렬 된 순 서 를 구 합 니 다.
입력:
여러 그룹의 데 이 터 를 입력 하 십시오.각 조 가 입력 한 첫 번 째 수 는 배열 의 길이 n (1 < = n < = 10000) 이 고 뒤의 수 는 배열 의 값 으로 빈 칸 으로 나 뉜 다.
출력:
각 입력 한 값 은 작은 것 에서 큰 것 으로 배 열 된 순서에 따라 (마지막 숫자 뒤에 빈 칸 이 없다).
샘플 입력:
4 -3 75 12 -3
샘플 출력:
1 3 2 1
원본:
2009 년 북경 항공우주 대학 컴퓨터 연구 생기 시험
사고의 방향
입력 한 수 와 순위 위 치 를 저장 하기 위해 구조 체 배열 을 만 듭 니 다.그 다음 에 먼저 순 서 를 정 한 다음 에 순서대로 출력 하면 된다.AC 코드
#include
using namespace std;
struct num{
int no;
int val;
}node[10005];
int input[10001];
bool cmp(num a,num b){//
return a.val < b.val;
}
int main(){
int n;
while(~scanf("%d",&n)){
for(int i = 0;i < n;i++){
cin >> node[i].val;
input[i] = node[i].val; //input
}
sort(node,node+n,cmp);
int cur = 1;// ( )
node[0].no = 1;
for(int i = 1;i < n;i++){
if(node[i].val == node[i-1].val){
node[i].no = cur;
}else{
cur++;
node[i].no = cur;
}
}
int first = true;
for(int i = 0;i < n;i++){//
for(int j = 0;j < n;j++){//
if(input[i] == node[j].val){
if(first){
cout << node[j].no;
first = false;
}else{
cout << " " << node[j].no;
}
break;
}
}
}
cout << endl;
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
9 도 OJ - 제목 1195: 최 장 & 최 단 텍스트 - 구조 체 배열 비교제목 링크:http://ac.jobdu.com/problem.php?pid=1195 제목 설명: 여러 줄 의 문자열 을 입력 하 십시오. 원본 의 순서에 따라 가장 짧 고 긴 문자열 을 출력 하 십시오. 가장 짧 고...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.