莫名错误,求调
查看原帖
莫名错误,求调
987758
CaoSheng_zzz楼主2024/8/25 17:33
#include <algorithm>
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include <queue>
#include <map>
#include <set>
#define prt printf
#define ll long long
#define int long long
#define spc putchar(' ')
#define ent putchar('\n')
#define pr_ prt("---")
#define prx prt("***")
#define prtn (putchar('N') , putchar('o'))
#define prty (putchar('Y') , putchar('e') , putchar('s'))
using namespace std;

inline int read(){
	int f = 1 , k = 0 ;
	char c = getchar() ;
	while((c < '0') | (c > '9')) { f = (c == '-' ? -1 : 1) ; c = getchar() ;}
	while((c >= '0') & (c <= '9')) { k = (k << 3) + (k << 1) + (c ^ 48) ; c = getchar() ;}
	return f == - 1 ? -k : k ;
}

void output(int now){
	if(now < 0){
		putchar('-');
		output(- now);
	}
	else{
		if(now > 9) output(now / 10);
		putchar((now % 10) ^ 48);
	}
}

void Mx(int &a , int b) { a = a > b ? a : b ; }

signed main(void) {
	int n = read() , m = read() , ans = 0 , t , sum = 1 ; vector<int> a(n << 1) , b(n << 1) ;
	for(int i=0 ; i<n ; i++) scanf("%1lld" , &a[i]) ;
	for(int i=1 ; i<=m ; i++) { int x = read() ; ++ b[x] ;}
	for(int i=0 ; i<(n<<1) ; i++) {
		if(b[i]) {
			ans += b[i] ;
			if((i < n) & (a[i] & 1)) ++ b[i] ;
			if((a[i] & 1) | (b[i] > 1)) Mx(t , ++ sum) ;
			else sum = 1;
			b[i + 1] += b[i] / 2; 
		}
		else sum = 1 ;
	}
	return output(ans) , ent , output(t) , ent , 0 ;
}
2024/8/25 17:33
加载中...