```cpp
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int size;
int sum = 0;
cin >> size;
vector<int> v(size, 1);
for (vector<int>::iterator it=v.begin();it!=v.end()&&it!= ++v.end();it++)
{
it++;
sum++;
}
cout << sum;
return 0;
}
```
现在还是只能过一个编译器,怎么办?
by Walker_Syw @ 2021-10-16 21:26:09
@[Walker_Syw](https://www.luogu.com.cn/user/449695)不至于这样吧,用数学的角度去推一下公式,其实答案就是n-2,不过要考虑比1小的情况,答案就是
```cpp
max(n-2,0)
```
~~其实我相信代码不贴你应该也会吧~~
代码:
```cpp
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
cout<<max(n-2,0);
return 0;
}
```
~~史上最短代码的普及-题~~
by sijiajun @ 2023-04-18 21:53:46
不过,如果一定要用vector来解,也可以这样写:
```cpp
#include<iostream>
#include<vector>
using namespace std;
int main(){
int size,sum=0;
cin>>size;
vector<int> v(size,1);
for(vector<int>::iterator it=v.begin();it!=v.end()-2;)it++,sum++;
if(it==1)sum=0;
cout <<sum;
return 0;
}
```
@[Walker_Syw](https://www.luogu.com.cn/user/449695)
by sijiajun @ 2023-04-18 22:09:05
~~考古,Walker_Syw会回吗?~~
by sijiajun @ 2023-04-18 22:09:55