Ryuki87241978
@Ryuki87241978

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

ABC217 C - Inverse of Permutation についての質問

Q&A

Closed

C - Inverse of Permutation についての質問

下記のようにコードを書いたんですが解けませんでした。
解決方法を教えていただけるとありがたいです。
よろしくお願い致します。
C++という言語で書きました。

問題のURL

書いたソースコード

#include <bits/stdc++.h>
#include <vector>
#include <iostream>
#include <map>
#include <string>
#include <cmath>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
using ll = long long;
using P = pair<int, int>;

int main() {

    int N;
    cin >> N;

    vector<int> P(N);
    rep(i,N) {
        cin >> P[i];
    }

    vector<int> Q(N);
    rep(i,N) {
        Q[P[i]] = i;
    }
    for(int j=1; j<=N; j++) {
        cout << Q[j]+1 << endl;
    }

}

WAだったケース

02_random_01.txt
がWAでした。

0

1Answer

vectorの範囲外にアクセスしてしまってWAとなるようですね。
なぜ「02_random_01.txt」だけWAとなるのかはテストケースも見てましたが正直よくわかりませんでした。
ただ、以下のように範囲内に収まるように宣言してあげるだけでACとなりました。

-vector<int> Q(N);
+vector<int> Q(N+1);

もしかしたら、以下の質問が参考になるかもしれません。

1Like

Comments

  1. @Ryuki87241978

    Questioner

    解けなかった原因を知ることができて良かったです。
    教えてくださりありがとうございました。

Your answer might help someone💌