2761956 | 2008-02-26 19:16:05 | Accepted | 2704 | C++ | 00:00.14 | 924K | C.D.=.= |
犯了一个极其低级的错误,把l = strlen(str); for ( i = 0; i < l; i ++ )写成了for ( i = 0; i < strlen ( str ); i ++ ),结果超时无数次。当for循环足够大时,不起眼的地方积累起来,错误也会变得很显著。起初想到可能是使用STL导致的超时,于是把栈简单模拟,结果仍然。看来对这种地方还是不够敏感啊。
1
#include <cstdio>
2
#include <string>
3![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
4
char str[100001];
5
int s[100001], top;
6![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
7
void pt ();
8
void print ( int, int );
9![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
10
int main ()
11![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedBlock.gif)
{
12
// '(' -1 ')' -2 '[' -3 ']' -4
13
//freopen ( "in.txt", "r", stdin );
14
while ( scanf ( "%s", str ) != EOF )
15![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
16
top = -1;
17
s[++ top] = -5;
18
int i, sum, ans = 0, pos, l = strlen ( str );
19
for ( i = 0; i < l; i ++ )
20![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
21
sum = 0;
22
if ( s[top] > 0 )
23![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
24
sum = s[top];
25
top --;
26
}
27
if ( str[i] == '(' )
28![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
29
if ( sum )
30
s[++ top] = sum;
31
s[++ top] = -1;
32
}
33
else if ( str[i] == '[' )
34![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
35
if ( sum )
36
s[++ top] = sum;
37
s[++ top] = -3;
38
}
39
else if ( str[i] == ')' )
40![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
41
if ( s[top] == -1 )
42![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
43
top --;
44
sum += 2;
45
if ( s[top] > 0 )
46![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
47
sum += s[top];
48
top --;
49
}
50
s[++ top] = sum;
51
}
52
else
53![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
54
if ( sum )
55
s[++ top] = sum;
56
s[++ top] = -2;
57
}
58
}
59
else if ( str[i] == ']' )
60![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
61
if ( s[top] == -3 )
62![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
63
top --;
64
sum += 2;
65
if ( s[top] > 0 )
66![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
67
sum += s[top];
68
top --;
69
}
70
s[++ top] = sum;
71
}
72
else
73![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
74
if ( sum )
75
s[++ top] = sum;
76
s[++ top] = -4;
77
}
78
}
79
sum = 0;
80
if ( s[top] > 0 )
81![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
82
sum += s[top];
83
top --;
84
}
85
if ( sum )
86
s[++ top] = sum;
87
if ( ans < sum )
88
pos = i - sum + 1, ans = sum;
89
//pt ();
90
}
91
print ( pos, ans );
92
}
93
return 0;
94
}
95![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
96
void print ( int pos, int ans )
97![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedBlock.gif)
{
98
int i;
99
for ( i = 0; i < ans; i ++ )
100
printf ( "%c", str[i + pos] );
101
printf ( "\n\n" );
102
}
103![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
104![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
105![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
2
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
3
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
4
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
5
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
6
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
7
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
8
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
9
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
10
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
11
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
12
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
13
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
14
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
15
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
16
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
17
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
18
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
19
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
20
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
21
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
22
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
23
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
24
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
25
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
26
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
27
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
28
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
29
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
30
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
31
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
32
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
33
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
34
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
35
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
36
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
37
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
38
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
39
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
40
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
41
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
42
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
43
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
44
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
45
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
46
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
47
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
48
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
49
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
50
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
51
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
52
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
53
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
54
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
55
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
56
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
57
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
58
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
59
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
60
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
61
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
62
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
63
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
64
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
65
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
66
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
67
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
68
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
69
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
70
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
71
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
72
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
73
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
74
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
75
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
76
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
77
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
78
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
79
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
80
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
81
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedSubBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
82
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
83
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
84
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
85
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
86
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
87
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
88
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
89
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
90
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
91
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
92
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
93
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
94
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
95
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
96
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
97
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnitblog.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnitblog.com/Images/dot.gif)
98
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
99
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
100
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
101
![](http://www.cnitblog.com/Images/OutliningIndicators/InBlock.gif)
102
![](http://www.cnitblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
103
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
104
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
105
![](http://www.cnitblog.com/Images/OutliningIndicators/None.gif)
评论