牛客oi測試賽2C——數列下標【模擬,水題】
阿新 • • 發佈:2018-12-01
連結: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; }