rt,我在 ABC368B 中使用了 vector,因为是降序,所以我写了自定义 cmp,但是它 RE 了一发。
后来测试发现当 n 开到 100 时它就 RE 了,是 vector 和 cmp 不兼容吗?
Code:
#include<bits/stdc++.h>
using namespace std;
int n,a[105],ans;
vector<int>q,p;
bool cmp(int _,int __){
if(_>__)return _;
return __;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
q.push_back(a[i]);
}
while(1){
// printf("%d\n",q.size());
sort(q.begin(),q.end(),cmp);
ans++;
q[0]--;
q[1]--;
p.clear();
for(int i=0;i<q.size();i++){
if(q[i]!=0){
p.push_back(q[i]);
}
}
if(p.size()<=1){
printf("%d\n",ans);
return 0;
}
q.clear();
for(int i=0;i<p.size();i++)q.push_back(p[i]);
}
return 0;
}
/*
100
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
*/