Task: rockerslang: C ++ compiling... compile: okexecuting... test 1: Test OK [0.000 secs, 3080 KB] Test 2: Test OK [0.000 secs, 3080 KB] Test 3: Test OK [0.000 secs, 3080 KB] Test 4: test OK [0.000 secs, 3080 KB] Test 5: Test OK [0.000 secs, 3080 KB] Test 6: Test OK [0.000 secs, 3080 KB] Test 7: test OK [0.000 secs, 3080 KB] Test 8: Test OK [0.000 secs, 3080 KB] test 9: Test OK [0.000 secs, 3080 KB] test 10: test OK [0.000 secs, 3080 KB] Test 11: Test OK [0.000 secs, 3080 KB] test 12: Test OK [0.000 secs, 3080 KB] All tests OK.
1 /*
2 Prog: rockers
3 ID: jiafeim1
4 Lang: C ++
5 */
6
7 # Include < Stdio. h >
8 # Include < String . H >
9 # Include < Math. h >
10
11 # Define Maxx (x, y) (x)> (y )? (X) :( y ))
12
13 Int N, T, M;
14 Int Musiclen [ 25 ];
15 Bool Musichavechoose [ 25 ] = { False };
16
17 Int Res [ 25 ] [ 25 ] [ 25 ] = { 0 };
18
19 Int Main ()
20 {
21 File * Fin = Fopen ( " Rockers. In " , " R " );
22 File * Fout = Fopen ( " Rockers. Out " , " W " );
23
24 Fscanf (FIN, " % D " , & N, & T, & M );
25 For ( Int I = 0 ; I < N; ++ I)
26 {
27 Fscanf (FIN, " % D " , & (Musiclen [I]);
28 If (Musiclen [I] > T)
29 Musichavechoose [I] = True ;
30 }
31 Int C1, C2, C3;
32 For ( Int Music = 1 ; Music <= N; ++ Music)
33 If (Musichavechoose [Music - 1 ])
34 Continue ;
35 Else
36 For ( Int CD = 1 ; CD <= M; ++ CD)
37 For ( Int Len = 1 ; Len <= T; ++ Len)
38 {
39 C1 = Res [cd] [Music - 1 ] [Len];
40 C3 = Res [cd - 1 ] [Music] [T];
41 C2 = 0 ;
42 If (Len > Musiclen [Music - 1 ])
43 C2 = Res [cd] [Music - 1 ] [Len - Musiclen [Music - 1 ] + 1 ;
44 If (Len = Musiclen [Music - 1 ])
45 C2 = Res [cd - 1 ] [Music - 1 ] [T] + 1 ;
46 Res [cd] [Music] [Len] =
47 Maxx (C1, Res [cd] [Music] [Len]), Maxx (C2, C3 ));
48 }
49 Fprintf (fout, " % D \ n " , Res [m] [N] [T]);
50 Fclose (FIN );
51 Fclose (fout );
52 Return 0 ;
53 }