USACO 2.2 Preface Numbering

TASK: preface
LANG: C++

Compiling...
Compile: OK

Executing...
   Test 1: TEST OK [0.000 secs, 3024 KB]
   Test 2: TEST OK [0.000 secs, 3024 KB]
   Test 3: TEST OK [0.000 secs, 3024 KB]
   Test 4: TEST OK [0.000 secs, 3024 KB]
   Test 5: TEST OK [0.000 secs, 3024 KB]
   Test 6: TEST OK [0.000 secs, 3024 KB]
   Test 7: TEST OK [0.000 secs, 3024 KB]
   Test 8: TEST OK [0.000 secs, 3024 KB]

All tests OK.
1 /*
2 ID: jiafeim1
3 PROG: preface
4 LANG: C++
5 */
6 #include <iostream>
7 #include <fstream>
8 #include <algorithm>
9 using namespace std;
10
11 #define maxN(x,y) ((x)>(y)?(x):(y))
12
13 int res[8] = {0};
14 int ge[12][11] = {0};
15 int main()
16 {
17 ofstream fout ("preface.out");
18 ifstream fin ("preface.in");
19
20 ge[1][0] = 1;
21 ge[2][0] = 2;
22 ge[3][0] = 3;
23 ge[4][0] = 1;
24 ge[4][1] = 1;
25 ge[5][1] = 1;
26 ge[6][0] = 1;
27 ge[6][1] = 1;
28 ge[7][0] = 2;
29 ge[7][1] = 1;
30 ge[8][0] = 3;
31 ge[8][1] = 1;
32 ge[9][0] = 1;
33 ge[9][2] = 1;
34 char str[19] = "IVXLCDM";
35 // 0123456
36 int n ;
37 fin>>n;
38 for(int i = 1;i<=n;++i)
39 {
40 int g = i %10;
41 int s = (i/10)%10;
42 int b = (i/100)%10;
43 int q = i /1000;
44 res[0]+=ge[g][0];
45 res[1]+=ge[g][1];
46 res[2]+=ge[g][2]+ge[s][0];
47 res[3]+=ge[s][1];
48 res[4]+=ge[s][2]+ge[b][0];
49 res[5]+=ge[b][1];
50 res[6]+=ge[b][2]+ge[q][0];
51 }
52
53 for(int i = 0;i<=6;++i)
54 {
55 if(res[i]!=0)
56 {
57 fout<<str[i]<<" "<<res[i]<<endl;
58 }
59 }
60 fin.close();
61 fout.close();
62 return 0;
63 }
posted @ 2011-05-04 21:27  幻魇  阅读(206)  评论(0编辑  收藏  举报