为什么这份代码27行一定要到0才能AC呢?通过0题的人数也会影响奖牌人数么,还有19行last=0,也报错了。求大佬解惑。测试了几组没问题但是通过30%.....
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=2e5+5; map<int,int>mp; int cot[N];//通过i题的队伍人数 int main() { int n,m; cin>>n>>m; int l,r; for(int i=0;i<m;i++){ cin>>l>>r; mp[l]++; mp[r+1]--; } int linej=0,liney=0,linet=0,j=ceil(1.0*n/10),y=ceil(1.0*n/4),t=ceil(1.0*n/2); int last=1,cnt=0,maxx=0; for(auto it:mp){ cot[cnt]+=it.first-last; last=it.first; cnt+=it.second; maxx=max(maxx,cnt); } //cout<<j<<' '<<y<<' '<<t<<'\n'; for(int i=maxx;i>=1;i--){ cot[i]+=cot[i+1]; if(cot[i]>=j&&!linej)linej=max(1,i); if(cot[i]>=y&&!liney)liney=max(1,i); if(cot[i]>=t&&!linet)linet=max(1,i); //cout<<cot[i]<<' '; } //cout<<'\n'; //cout<<linej<<' '<<liney<<' '<<linet<<'\n'; cout<<cot[linej]<<' '<<cot[liney]-cot[linej]<<' '<<cot[linet]-cot[liney]<<'\n'; return 0; } /* 1 1 1 1 1 0 0 */
全部评论
(0) 回帖