求救!72tps!
查看原帖
求救!72tps!
1378709
Yue_Hao楼主2025/2/3 15:12

求大佬们帮忙debug这份代码,谢谢

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
inline int read(){ //快读
	int x = 0;
	bool f = false;
	char ch = getchar();
	while(ch < '0' || ch > '9'){
		if(ch == '-'){
			f = true;
			ch = getchar();
		}
	}
	while(ch >= '0' && ch <= '9'){
		x = x * 10 + ch - '0';
		ch = getchar();
	}
	if( f ) return -x;
	else return x;
}
string s;
int main(){
	//tsum,ssum分别为教师座位数和学生座位数;a,b分别表示学生和教师数量
	int a, b, tsum = 0, ssum = 0, ans = 0;
	a = read(), b = read();
	cin >> s;
	for(int i = 0; i < s.size(); i++){ //统计各个座位的数量
		if(s[i] == 'T') tsum++;
		else ssum++;
	}
	//如果总人数大于总座位数(s.size()-1是因为要去掉后面的空字符),那么无解
	if( (a + b) > (s.size() - 1)){
		printf("-1");
		return 0;
	}
	if(ssum >= a && tsum >= b){
		//对应座位数均大于对应人数,不用改
		printf("0");
		return 0;
	}else if(a > ssum && tsum >= b){
		//如果有一方人数大于对应座位数,以多出的座位数作为答案,因为排除掉了总人数大于座位数的情况,下方同理
		ans = a - ssum;
		printf("%d", ans);
	}else{
		ans = b - tsum;
		printf("%d", ans);
	}
	return 0;
}

WA: #2 ~ #8(a+b=n的情况时错了)
测试结果

2025/2/3 15:12
加载中...