求助昨晚CF的B
  • 板块学术版
  • 楼主tanghg
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/10/16 07:45
  • 上次更新2023/10/27 07:20:08
查看原帖
求助昨晚CF的B
692647
tanghg楼主2022/10/16 07:45

rt,思路是记录到第 ii 个数之前(包括)有几个1,再去看这个数字之后(不包括)有几个0,如果两个值相等就输出,求hack和正确做法。

#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll;
const ll MAXN=1e5+5;
ll t,n,a[MAXN];
int main(){
    cin>>t;
    for (int i = 1; i <=t ; ++i) {
        scanf("%lld",&n);
        ll num0=0,num1=0;
        for (int j = 1; j <=n ; ++j) {
            scanf("%lld",&a[j]);
            if(!a[j]){
                ++num0;
            }
        }
        for (int j = 1; j <=n ; ++j) {
            if(a[j]){
                ++num1;
            }else if(!a[j]){
                --num0;
            }
            if(num0==num1){
                printf("%lld\n",num0);
                break;
            }
        }
    }
    return 0;
}
2022/10/16 07:45
加载中...