前提・実現したいこと
長さNの正整数列A=(A1,A2,…,AN)とQ個のクエリが与えられます。
i(1≤i≤Q)番目のクエリでは、正整数 Kiが与えられるので、A1,A2,…,ANのいずれとも異なる正整数のうち、小さい方から数えてKi番目のものを求めてください。
という競技プログラミングの問題に自分が解いたコードが下記コードなのですが、こちらのアルゴルズムの速度はオーダ表記でどれだけになりますか?
発生している問題・エラーメッセージ
該当のソースコード
C言語
1#include<stdio.h> 2int main(void){ 3 int N, Q; 4 scanf("%d%d", &N, &Q); 5 int i, A[N], K[Q]; 6 A[0]=0; 7 for(i = 1 ; i <= N ; i++){ 8 scanf("%d", &A[i]); 9 } 10 for(i = 0 ; i < Q ; i++){ 11 scanf("%d", &K[i]); 12 } 13 int c = 0, k, l; 14 for(i = 0 ; i < Q ; i++){ 15 c = 0; 16 l = 0; 17 k = 1; 18 while(1){ 19 c+=1; 20 if(A[k] == c){ 21 l+=1; 22 k++; 23 } 24 if(K[i] == c-l){ 25 printf("%d\n", c); 26 break; 27 } 28 } 29 } 30}
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。