一年半过去了这个人怎么还在问普及-啊(
实在调不出来了 明早还要起早上课 九点半才到家 呜呜呜
#include <cstdio>
#include <iostream>
#include <stack>
using namespace std;
int dpl[10020];
stack<char> s;
bool noans = true;
int maxans = -0x7fffffff;
int maxnu = 0;
bool match(char a, char b) {
if (a == '(' && b == ')')
return true;
return false;
}
signed main() {
string str;
cin >> str;
bool flag = false;
s.push(str[0]);
if (str[0] == '(')
flag = true;
for (int i = 1; i < str.length(); i++) {
if (!s.empty() && match(s.top(), str[i])) {
if (flag) {
dpl[i] = dpl[i - 1] + 2;
noans=false;
if (dpl[i] > maxans) {
maxans = dpl[i];
maxnu = 0;
}
if (dpl[i] == maxans)
maxnu++;
} else {
dpl[i] = 2;
flag = true;
noans=false;
if (dpl[i] > maxans) {
maxans = dpl[i];
maxnu = 0;
}
if (dpl[i] == maxans)
maxnu++;
}
s.pop();
} else {
if (str[i] == '(') {
dpl[i] = dpl[i - 1];
s.push('(');
} else {
dpl[i] = dpl[i - 1];
flag = false;
}
}
}
if(!noans) printf("%d %d\n", maxans, maxnu);
else printf("0 1\n");
return 0;
}