請各位版友不吝指教
昨天我用array還有20分,後面TLE
今天改用vector,程式碼如下
用eclipse測試都正確
卻只有過第一個資測,後面全部區段記憶體錯誤
想請問是因為不能使用指標嗎?
#include<iostream>
using namespace std;
#include<vector>
int main() {
int n, m, k;
cin>>n>>m>>k;
vector<int> b;
for(int i = 0; i < n; i++)
b.push_back(i+1);
int play = 0;
auto pos = b.begin(), next = b.begin();
m-=1;
while(play < k) {
if(pos+m >= b.end()) {
b.erase(pos+m-b.size());
next = pos;
pos = pos+m-b.size()-1;
}
else {
b.erase(pos+m);
next = pos;
pos+=m;
}
play++;
}
cout<<*next<<endl;
return 0;
}
b.erase(pos+m-b.size());
當m很大你會超出範圍,改用餘數吧