AtCoderの典型90問の10で全く意味不明なout_of_rangeエラーが出て困っています。(https://atcoder.jp/contests/typical90/tasks/typical90_j)
自分でも考えてみたのですがなぜ 18446744073709551615 のような大きな数字が出てくるのかがわかりません。回答よろしくおねがいします。
C++(GCC
1#include <bits/stdc++.h> 2using namespace std; 3 4int main() { 5 int n, q, tmp, tmp2; 6 cin >> n; 7 vector<int> p1(n); 8 vector<int> p2(n); 9 10 cin >> tmp >> tmp2; 11 if (tmp == 1) { 12 p1.at(0) = tmp2; 13 p2.at(0) = 0; 14 } else { 15 p2.at(0) = tmp2; 16 p1.at(0) = 0; 17 } 18 19 for (int i = 1; i < n; i++) { 20 cin >> tmp >> tmp2; 21 if (tmp == 1) { 22 p1.at(i) = p1.at(i - 1) + tmp2; 23 p2.at(i) = p2.at(i - 1); 24 } else { 25 p2.at(i) = p2.at(i - 1) + tmp2; 26 p1.at(i) = p1.at(i - 1); 27 } 28 } 29 30 cin >> q; 31 vector<int> l(q); 32 vector<int> r(q); 33 for (int i = 0; i < q; i++) { 34 cin >> l.at(i) >> r.at(i); 35 } 36 37 for (int i = 0; i < q; i++) { 38 cout << p1.at(r.at(i) - 1) - p1.at(l.at(i) - 2) << " " 39 << p2.at(r.at(i) - 1) - p2.at(l.at(i) - 2) << endl; 40 } 41}
入力
input
17 21 72 32 78 42 94 51 23 62 89 71 40 81 75 910 101 3 112 4 123 5 134 6 145 7 151 5 162 6 173 7 181 6 192 7 20
出力
error
1terminate called after throwing an instance of 'std::out_of_range' 2 what(): vector::_M_range_check: __n (which is 18446744073709551615) >= this->size() (which is 7)

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/10 13:01 編集