我希望你是我独家记忆

一段永远封存的记忆,随风而去
posts - 263, comments - 31, trackbacks - 0, articles - 3
   :: 首页 :: 新随笔 ::  :: 聚合  :: 管理

P3078——模拟

Posted on 2008-09-02 14:33 Hero 阅读(102) 评论(0)  编辑 收藏 引用 所属分类: 代码如诗--ACM
 1 //3078 Accepted 320K 0MS G++ 1050B PKU
 2 
 3 //模拟填数
 4 
 5 #include <stdio.h>
 6 #include <stdlib.h>
 7 #include <string.h>
 8 
 9 char data[50][10] ;
10 int dnum[50] ;
11 int flag[50] ;
12 
13 int innum ;
14 int inn, inm ;
15 
16 void input()
17 {
18     memset( flag, 0sizeof(flag) ) ;
19     memset( dnum, 0sizeof(dnum) ) ;
20 
21     scanf( "%d %d"&inn, &inm ) ;
22 
23     forint i=1; i<=inn; i++ ) 
24     {
25         scanf( "%s", data[i] ) ; //printf( "%s ", data[i] ) ;
26     }
27 }
28 
29 void process()
30 {
31     int a, b ;
32     forint i=1; i<=inm; i++ )
33     {
34         scanf( "%d %d",&a, &b ) ; dnum[b] = a ; flag[a] = 1 ;
35     }
36     int curnum = 1 ;
37     forint i=1; i<=inn; i++ )
38     {
39         if0 == dnum[i] )
40         {
41             while( flag[curnum] ) curnum++ ;
42             dnum[i] = curnum ; flag[curnum] = 1 ;
43         }
44     }
45 }
46 
47 void output()
48 {
49     char *blank = "" ;
50     forint i=1; i<=inn; i++ )
51     {
52         printf( "%s%s", blank, data[dnum[i]] ) ; blank = " " ;
53     }
54     printf( "\n" ) ;
55 }
56 
57 int main()
58 {
59     //freopen( "in.txt", "r", stdin ) ;
60 
61     while( scanf( "%d"&innum ) != EOF )
62     {
63         forint ct=1; ct<=innum; ct++ )
64         {
65             input() ;
66 
67             process() ;
68 
69             output() ;
70         }
71     }
72 
73     return 0 ;
74 }

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理