3 1 2 2 3 2 3 0
Case 1: 2 3 -1 -1 -1 -1
简单题,穷举即可。
代码:
1 #include <iostream>
2 #include <string.h>
3 using namespace std; 4 int main() 5 { 6 int n; 7 int Count =1; 8 while(cin>>n){ 9 if(n==0) break; 10 int a[310][310]={0}; 11 int r[1001]={0}; 12 int c[1001]={0}; 13 int MaxR=0,MaxC=0; 14 for(int i=1;i<=n;i++){ 15 cin>>r[i]>>c[i]; 16 a[r[i]][c[i]] = 1; 17 if(r[i]>MaxR) 18 MaxR = r[i]; 19 if(c[i]>MaxC) 20 MaxC = c[i]; 21 } 22 cout<<"Case "<<Count++<<':'<<endl; 23 for(int i=1;i<=n;i++){ 24 int R = r[i],C = c[i]; 25 int j,k; 26 if(R+1>MaxR || C+1>MaxC){ 27 cout<<-1<<' '<<-1<<endl; 28 continue; 29 } 30 for(j=R+1;j<=MaxR;j++) 31 for(k=C+1;k<=MaxC;k++) 32 if(a[j][k]==1) 33 goto label; 34 label: 35 if(j>MaxR && k>MaxC) 36 cout<<-1<<' '<<-1<<endl; 37 else
38 cout<<j<<' '<<k<<endl; 39 } 40 cout<<endl; 41 } 42 return 0; 43 }
Freecode : www.cnblogs.com/yym2013