思维"/>
C. Penalty(思维
添加链接描述
考虑让两个队的分差越大,让a尽可能的小,让b尽可能的大
#include<bits/stdc++.h>
using namespace std;
const int N=15;
char ch[N];
char now[N];
int solve(){int tota=0,totb=0,ans=9;for(int i=0;i<10;i++){if(i%2==0)tota+=ch[i]=='1';else totb+=ch[i]!='0';if(tota>totb){if(tota>totb+(10-i)/2)ans=min(ans,i);}else {if(totb>tota+(9-i)/2)ans=min(ans,i);}}tota=0,totb=0;for(int i=0;i<10;i++){if(i%2==0)tota+=ch[i]!='0';else totb+=ch[i]=='1';if(tota>totb){if(tota>totb+(10-i)/2)ans=min(ans,i);}else {if(totb>tota+(9-i)/2)ans=min(ans,i);}}return ans+1;
}int main(){int T;cin>>T;while(T--){scanf("%s",ch);strcpy(now,ch);sort(now,now+10);cout<<solve()<<endl;}return 0;
}
更多推荐
C. Penalty(思维
发布评论