1. 程式人生 > >牛客oi測試賽2C——數列下標【模擬,水題】

牛客oi測試賽2C——數列下標【模擬,水題】

連結:https://www.nowcoder.com/acm/contest/185/C
來源:牛客網
 

給出一個數列 A,求出一個數列B.

其中Bi   表示 數列A中 Ai 右邊第一個比 Ai 大的數的下標(從1開始計數),沒有找到這一個下標  Bi 就為0

輸出數列B

輸入描述:

 

第一行1個數字 n (n ≤ 10000)

第二行n個數字第 i 個數字為 Ai (0 ≤ Ai  ≤ 1000000000)

輸出描述:

一共一行,第 i 個數和第 i+1 個數中間用空格隔開.

示例1

輸入

複製

6
3 2 6 1 1 2

輸出

複製

3 3 0 6 6 0

說明

樣例不用解釋

按題目模擬即可。

 

#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100010;
int a[MAXN];
int b[MAXN];
int vis[MAXN];
int main(int argc, char const *argv[])
{
	int n;
	while(~scanf("%d",&n)){
		memset(b,0,sizeof(b));
		for(int i = 1; i <= n; i++){
			scanf("%d",&a[i]);
		}
		for(int i = 1; i <= n; i++){
			for(int j = i+1; j <= n; j++){
				if(a[j] > a[i]){
					b[i] = j;
					break;
				}
			}
		}
		for(int i = 1; i <= n; i++){
			if(i != n){
				printf("%d ",b[i]);
			}
			else printf("%d\n",b[i]);
		}
	}
	return 0;
}