(看题解,不计数)[Codeforces Round #163 (Div. 2)]C. Below the Diagonal

地址:http://codeforces.com/contest/266/problem/C

这题比赛时没做出来

这还是看了dys的题解才写出来......

 1 #include<stdio.h>
 2 
 3 int n,m[1000][2],result[10000][3];
 4 
 5 int main()
 6 {
 7     int i,j,count=0;
 8     scanf("%d",&n);
 9     for(i=0;i<n-1;i++)
10     {
11         scanf("%d %d",&m[i][0],&m[i][1]);
12     }
13     for(i=0;i<n-1;i++)
14     {
15         if(m[i][0]!=i+2)
16         {
17             for(j=i+1;j<n-1;j++)
18             {
19                 if(m[j][0]==m[i][0]) m[j][0]=i+2;
20                 else if(m[j][0]==i+2) m[j][0]=m[i][0];
21             }
22             result[count][0]=1;
23             result[count][1]=m[i][0];
24             result[count][2]=i+2;
25             m[i][0]=i+2;
26             count++;
27         }
28         if(m[i][1]>i+1)
29         {
30             for(j=i+1;j<n-1;j++)
31             {
32                 if(m[j][1]==m[i][1]) m[j][1]=i+1;
33                 else if(m[j][1]==i+1) m[j][1]=m[i][1];
34             }
35             result[count][0]=2;
36             result[count][1]=m[i][1];
37             result[count][2]=i+1;
38             m[i][1]=i+1;
39             count++;
40         }
41     }
42     printf("%d\n",count);
43     for(i=0;i<count;i++)
44     {
45         printf("%d %d %d\n",result[i][0],result[i][1],result[i][2]);
46     }
47     return 0;
48 }

 

posted @ 2013-01-23 15:24  tjsuhst  阅读(214)  评论(0)    收藏  举报