返回列表 發帖

2021npsc_A_圈圈叉叉_C++解題

本帖最後由 鄭繼威 於 2022-10-29 12:08 編輯

A.圈圈叉叉
Problem ID: tictactoe

你有玩過圈圈叉叉嗎?圈圈叉叉,⼜稱井字棋,是一個在大小 3 × 3 的棋盤上玩的雙⼈遊戲。兩個玩家一人代表圈、一人代表叉,並且輪流在棋盤空的格子中放上自己的符號,而誰先連成一條線就贏了。

小 Y 是一個天才兒童,所以傳統 3 × 3 的圈圈叉叉對他來說已經太無趣了。因此,他發明了一種新的版本,並邀請他的好朋友小 P 一起來玩。小 Y 發明的版本是在⼀個 N × N 的棋盤上玩,與傳統的規則一樣,一人畫圈、另一人畫叉,並且拿圈的玩家先手。但與傳統的圈圈叉叉規則不一樣的是,小 Y 的遊戲比的不是誰先連成一條線,而是兩人會下到不能再下為止(也就是棋盤已經完全被佔滿),再看誰的連線比較多,一個玩家的得分就是他的連線數量,⽽很⾃然的,得分較⾼的玩家就勝出。
補充說明,在 N × N 的棋盤上,連線是指有同排、同列、或是同對⾓線的 N 個相同符號。

小 Y 跟小 P 都覺得新版的圈圈叉叉實在⽐舊版的好玩太多了,但他們馬上就遇到了一個問題:由於棋盤實在是太大了,遊戲結束後實在無法慢慢的用人力來算分。當然,寫個程式來處理這個問題對於天才兒童小 Y 來說可以說是易如反掌,但可想而知,他還有更重要的事情要做。因此,身為程式競賽參賽者的你們,何不幫幫小 Y 解決這個⿇煩的問題呢?







https://contest.cc.ntu.edu.tw/npsc2021/teamclient/contest_junior.pdf
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.         ios::sync_with_stdio(0);      
  7.         cin.tie(0);
  8.       
  9.         int N;
  10.         cin>>N;
  11.         string s[N];  //宣告長度為N的 字串型態的陣列
  12.         for(int i=0;i<N;i++)
  13.                 cin>>s[i];  //把ooxx cin進字串陣列
  14.         int ocnt=0;
  15.         int xcnt=0;

  16.         //巢狀迴圈(2層)
  17.         for(int i=0;i<N;i++)
  18.         {
  19.         //第i行
  20.                 for(int j=0;j<N;j++)
  21.                 {
  22.                 //讀取ooxx(字元陣列)
  23.                         if(s[i][j]=='o')
  24.                                 ocnt++;
  25.                         else
  26.                                 xcnt++;
  27.                 }
  28.         }
  29.       
  30.         int o;
  31.         int oscore=0;
  32.         int xscore=0;
  33.         
  34.            //o先下手所以在奇數局會比x還多1次,(所以x那邊要+1才會平衡)
  35.         if(ocnt==xcnt||ocnt==xcnt+1)
  36.         {
  37.         //連線總共有4種狀況(橫、縱、斜X2)
  38.                 for(int i=0;i<N;i++){
  39.                 //橫的連線
  40.                         o=0;
  41.                         for(int j=0;j<N;j++){
  42.                                 if(s[i][j]=='o')
  43.                                         o++;
  44.                         }
  45.                         //如果連線就加分
  46.                         if(o==N)
  47.                                 oscore++;
  48.                         else if(o==0)
  49.                                 xscore++;
  50.                 }
  51.                
  52.                 for(int j=0;j<N;j++){
  53.                 //縱的連線
  54.                         o=0;
  55.                         for(int i=0;i<N;i++){
  56.                                 if(s[i][j]=='o')
  57.                                         o++;
  58.                         }
  59.                         //如果連線就加分
  60.                         if(o==N)
  61.                                 oscore++;
  62.                         else if(o==0)
  63.                                 xscore++;
  64.                 }
  65.                
  66.                 o=0;
  67.                 for(int i=0;i<N;i++){
  68.                         //斜的連線(左上至右下)
  69.                         if(s[i][i]=='o')
  70.                                 o++;
  71.                         }
  72.                         //如果連線就加分
  73.                         if(o==N)
  74.                                 oscore++;
  75.                         else if(o==0)
  76.                                 xscore++;
  77.                               
  78.                 o=0;
  79.                 for(int i=0;i<N;i++){
  80.                         //斜的連線(右上至左下)
  81.                         if(s[i][N-1-i]=='o')
  82.                                 o++;
  83.                         }
  84.                         //如果連線就加分
  85.                         if(o==N)
  86.                                 oscore++;
  87.                         else if(o==0)
  88.                                 xscore++;
  89.                
  90.                 cout<<oscore<<" "<<xscore<<endl;
  91.                
  92.         }else        
  93.                 cout<<"Impossible"<<endl;
  94.       
  95.         system("pause");
  96.         return 0;  
  97. }
複製代碼

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     ios::sync_with_stdio(0);      
  7.     cin.tie(0);
  8.     int N;
  9.     cin>>N;
  10.     string s[N];
  11.     for(int i=0;i<N;i++)
  12.         cin>>s[i];
  13.    
  14.     int oc=0,xc=0,ooo=0,xxx=0,o;
  15.     for(int i=0;i<N;i++)
  16.     {
  17.         for(int j=0;j<N;j++)
  18.         {
  19.         if(s[i][j]=='o')
  20.             oc++;
  21.         else
  22.             xc++;
  23.         }
  24.     }
  25.     if(oc==xc || oc==xc+1)
  26.     {
  27.         for(int i=0;i<N;i++)
  28.         {
  29.             o=0;
  30.             for(int j=0;j<N;j++)
  31.             {
  32.                 if(s[i][j]=='o')
  33.                     o++;            
  34.             }
  35.             if(o==N)
  36.                 ooo++;
  37.             else if(o==0)
  38.                 xxx++;      
  39.         }
  40.         for(int j=0;j<N;j++)
  41.         {
  42.             o=0;
  43.             for(int i=0;i<N;i++)
  44.             {
  45.                 if(s[i][j]=='o')
  46.                     o++;            
  47.             }
  48.             if(o==N)
  49.                 ooo++;
  50.             else if(o==0)
  51.                 xxx++;      
  52.         }
  53.         o=0;
  54.         for(int i=0;i<N;i++)
  55.         {
  56.             if(s[i][i]=='o')
  57.                 o++;
  58.         }         
  59.             if(o==N)
  60.                 ooo++;
  61.             else if(o==0)
  62.                 xxx++;      
  63.         o=0;
  64.         for(int i=0;i<N;i++)
  65.         {
  66.             if(s[i][N-1-i]=='o')
  67.                 o++;        
  68.         }     
  69.             if(o==N)
  70.                 ooo++;
  71.             else if(o==0)
  72.                 xxx++;      
  73.         cout<<ooo<<" "<<xxx<<endl;            
  74.     }else
  75.     {
  76.         cout<<"Impossible"<<endl;     
  77.     }
  78.     system("pause");
  79.     return 0;   
  80. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.         ios::sync_with_stdio(0);      
  7.         cin.tie(0);
  8.       
  9.         int N;
  10.         cin>>N;
  11.         string s[N];  
  12.         for(int i=0;i<N;i++)
  13.                 cin>>s[i];  
  14.         int ocnt=0;
  15.         int xcnt=0;
  16.         for(int i=0;i<N;i++)
  17.         {
  18.                 for(int j=0;j<N;j++)
  19.                 {
  20.                         if(s[i][j]=='o')
  21.                                 ocnt++;
  22.                         else
  23.                                 xcnt++;
  24.                 }
  25.         }
  26.       
  27.         int o;
  28.         int oscore=0;
  29.         int xscore=0;
  30.         
  31.         if(ocnt==xcnt||ocnt==xcnt+1)
  32.         {
  33.                 for(int i=0;i<N;i++){
  34.                         o=0;
  35.                         for(int j=0;j<N;j++){
  36.                                 if(s[i][j]=='o')
  37.                                         o++;
  38.                         }
  39.                         if(o==N)
  40.                                 oscore++;
  41.                         else if(o==0)
  42.                                 xscore++;
  43.                 }
  44.                
  45.                 for(int j=0;j<N;j++){
  46.                         o=0;
  47.                         for(int i=0;i<N;i++){
  48.                                 if(s[i][j]=='o')
  49.                                         o++;
  50.                         }
  51.                         if(o==N)
  52.                                 oscore++;
  53.                         else if(o==0)
  54.                                 xscore++;
  55.                 }
  56.                
  57.                 o=0;
  58.                 for(int i=0;i<N;i++){
  59.                         if(s[i][i]=='o')
  60.                                 o++;
  61.                         }
  62.                         if(o==N)
  63.                                 oscore++;
  64.                         else if(o==0)
  65.                                 xscore++;
  66.                               
  67.                 o=0;
  68.                 for(int i=0;i<N;i++){
  69.                         if(s[i][N-1-i]=='o')
  70.                                 o++;
  71.                         }
  72.                         if(o==N)
  73.                                 oscore++;
  74.                         else if(o==0)
  75.                                 xscore++;
  76.                
  77.                 cout<<oscore<<" "<<xscore<<endl;
  78.                
  79.         }else        
  80.                 cout<<"Impossible"<<endl;
  81.         system("pause");
  82.         return 0;
  83. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.         ios::sync_with_stdio(0);      
  7.         cin.tie(0);
  8.       
  9.         int N;
  10.         cin>>N;
  11.         string s[N];
  12.         for(int i=0;i<N;i++)
  13.                 cin>>s[i];
  14.         int ocnt=0;
  15.         int xcnt=0;

  16.         
  17.         for(int i=0;i<N;i++)
  18.         {
  19.         
  20.                 for(int j=0;j<N;j++)
  21.                 {
  22.                
  23.                         if(s[i][j]=='o')
  24.                                 ocnt++;
  25.                         else
  26.                                 xcnt++;
  27.                 }
  28.         }
  29.       
  30.         int o;
  31.         int oscore=0;
  32.         int xscore=0;
  33.         
  34.          
  35.         if(ocnt==xcnt||ocnt==xcnt+1)
  36.         {
  37.         
  38.                 for(int i=0;i<N;i++){
  39.                
  40.                         o=0;
  41.                         for(int j=0;j<N;j++){
  42.                                 if(s[i][j]=='o')
  43.                                         o++;
  44.                         }
  45.                         
  46.                         if(o==N)
  47.                                 oscore++;
  48.                         else if(o==0)
  49.                                 xscore++;
  50.                 }
  51.                
  52.                 for(int j=0;j<N;j++){
  53.                
  54.                         o=0;
  55.                         for(int i=0;i<N;i++){
  56.                                 if(s[i][j]=='o')
  57.                                         o++;
  58.                         }
  59.                         
  60.                         if(o==N)
  61.                                 oscore++;
  62.                         else if(o==0)
  63.                                 xscore++;
  64.                 }
  65.                
  66.                 o=0;
  67.                 for(int i=0;i<N;i++){
  68.                        
  69.                         if(s[i][i]=='o')
  70.                                 o++;
  71.                         }
  72.                         
  73.                         if(o==N)
  74.                                 oscore++;
  75.                         else if(o==0)
  76.                                 xscore++;
  77.                               
  78.                 o=0;
  79.                 for(int i=0;i<N;i++){
  80.                        
  81.                         if(s[i][N-1-i]=='o')
  82.                                 o++;
  83.                         }
  84.                        
  85.                         if(o==N)
  86.                                 oscore++;
  87.                         else if(o==0)
  88.                                 xscore++;
  89.                
  90.                 cout<<oscore<<" "<<xscore<<endl;
  91.                
  92.         }else        
  93.                 cout<<"Impossible"<<endl;
  94.       
  95.         return 0;
  96. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.         ios::sync_with_stdio(0);      
  7.         cin.tie(0);
  8.       
  9.         int N;
  10.         cin>>N;
  11.         string s[N];  
  12.         for(int i=0;i<N;i++)
  13.                 cin>>s[i];  
  14.         int ocnt=0;
  15.         int xcnt=0;

  16.         for(int i=0;i<N;i++)
  17.         {
  18.    
  19.                 for(int j=0;j<N;j++)
  20.                 {
  21.   
  22.                         if(s[i][j]=='o')
  23.                                 ocnt++;
  24.                         else
  25.                                 xcnt++;
  26.                 }
  27.         }
  28.       
  29.         int o;
  30.         int oscore=0;
  31.         int xscore=0;

  32.         if(ocnt==xcnt||ocnt==xcnt+1)
  33.         {
  34.                 for(int i=0;i<N;i++){

  35.                         o=0;
  36.                         for(int j=0;j<N;j++){
  37.                                 if(s[i][j]=='o')
  38.                                         o++;
  39.                         }
  40.   
  41.                         if(o==N)
  42.                                 oscore++;
  43.                         else if(o==0)
  44.                                 xscore++;
  45.                 }
  46.                
  47.                 for(int j=0;j<N;j++){
  48.                         o=0;
  49.                         for(int i=0;i<N;i++){
  50.                                 if(s[i][j]=='o')
  51.                                         o++;
  52.                         }
  53.                         if(o==N)
  54.                                 oscore++;
  55.                         else if(o==0)
  56.                                 xscore++;
  57.                 }
  58.                
  59.                 o=0;
  60.                 for(int i=0;i<N;i++){
  61.                         if(s[i][i]=='o')
  62.                                 o++;
  63.                         }
  64.                         if(o==N)
  65.                                 oscore++;
  66.                         else if(o==0)
  67.                                 xscore++;
  68.                               
  69.                 o=0;
  70.                 for(int i=0;i<N;i++){
  71.                         if(s[i][N-1-i]=='o')
  72.                                 o++;
  73.                         }
  74.                         if(o==N)
  75.                                 oscore++;
  76.                         else if(o==0)
  77.                                 xscore++;
  78.                
  79.                 cout<<oscore<<" "<<xscore<<endl;
  80.                
  81.         }else        
  82.                 cout<<"Impossible"<<endl;
  83.       
  84.         return 0;
  85. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.         ios::sync_with_stdio(0);      
  7.         cin.tie(0);
  8.       
  9.         int N;
  10.         cin>>N;
  11.         string s[N];  
  12.         for(int i=0;i<N;i++)
  13.                 cin>>s[i];  
  14.         int ocnt=0;
  15.         int xcnt=0;

  16.         for(int i=0;i<N;i++)
  17.         {
  18.       
  19.                 for(int j=0;j<N;j++)
  20.                 {
  21.                
  22.                         if(s[i][j]=='o')
  23.                                 ocnt++;
  24.                         else
  25.                                 xcnt++;
  26.                 }
  27.         }
  28.       
  29.         int o;
  30.         int oscore=0;
  31.         int xscore=0;
  32.         
  33.         if(ocnt==xcnt||ocnt==xcnt+1)
  34.         {
  35.                 for(int i=0;i<N;i++){
  36.                         o=0;
  37.                         for(int j=0;j<N;j++){
  38.                                 if(s[i][j]=='o')
  39.                                         o++;
  40.                         }
  41.                         if(o==N)
  42.                                 oscore++;
  43.                         else if(o==0)
  44.                                 xscore++;
  45.                 }
  46.                
  47.                 for(int j=0;j<N;j++){
  48.                
  49.                         o=0;
  50.                         for(int i=0;i<N;i++){
  51.                                 if(s[i][j]=='o')
  52.                                         o++;
  53.                         }
  54.                
  55.                         if(o==N)
  56.                                 oscore++;
  57.                         else if(o==0)
  58.                                 xscore++;
  59.                 }
  60.                
  61.                 o=0;
  62.                 for(int i=0;i<N;i++){
  63.                         
  64.                         if(s[i][i]=='o')
  65.                                 o++;
  66.                         }
  67.                        
  68.                         if(o==N)
  69.                                 oscore++;
  70.                         else if(o==0)
  71.                                 xscore++;
  72.                               
  73.                 o=0;
  74.                 for(int i=0;i<N;i++){
  75.       
  76.                         if(s[i][N-1-i]=='o')
  77.                                 o++;
  78.                         }
  79.                   
  80.                         if(o==N)
  81.                                 oscore++;
  82.                         else if(o==0)
  83.                                 xscore++;
  84.                
  85.                 cout<<oscore<<" "<<xscore<<endl;
  86.                
  87.         }else        
  88.                 cout<<"Impossible"<<endl;
  89.       
  90.         return 0;
  91. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.         int n;
  7.         cin>>n;
  8.         string s[n];
  9.         for(int i=0;i<n;i++)
  10.         cin>>s[i];
  11.         int oc;
  12.         int xc;
  13.         for(int i=0;i<n;i++)
  14.         {
  15.            for(int j=0;j<n;j++)
  16.            {
  17.                if(s[i][j]=='o')
  18.                {
  19.                    oc++;            
  20.                }else
  21.                {
  22.                    xc++;
  23.                }   
  24.            }     
  25.         }
  26.         int o;
  27.         int os;
  28.         int xs;
  29.         if(oc==xc||oc==xc+1)
  30.         {
  31.             for(int i=0;i<n;i++)
  32.             {
  33.                 for(int j=0;j<n;j++)
  34.                 {
  35.                     if(s[i][j]=='o')
  36.                     {
  37.                      o++;
  38.                     }
  39.                     if(o==n)
  40.                     {
  41.                        os++;     
  42.                     }else
  43.                     {
  44.                        xs++;   
  45.                     }
  46.                 }   
  47.             }
  48.             for(int j=0;j<n;j++)
  49.             {
  50.                 o=0;
  51.                 for(int i=0;i<n;i++)
  52.                 {
  53.                     if(s[i][j]=='o')
  54.                     {
  55.                      o++;
  56.                     }
  57.                     if(o==n)
  58.                        os++;     
  59.                     else
  60.                        xs++;   
  61.                 }   
  62.             }
  63.             o=0;
  64.             for(int i=0;i<n;i++)
  65.             {
  66.                     if(s[i][i]=='o')
  67.                     {
  68.                      o++;
  69.                     }
  70.                     if(o==n)
  71.                     {
  72.                        os++;     
  73.                     }else if(o==0)
  74.                     {
  75.                        xs++;   
  76.                     }     
  77.             }
  78.             o=0;
  79.             for(int i=0;i<n;i++)
  80.             {
  81.                     if(s[i][n-1-i]=='o')
  82.                     {
  83.                      o++;
  84.                     }
  85.                     }
  86.                     if(o==n)
  87.                     {
  88.                        os++;     
  89.                     }else if(o==0)
  90.                     {
  91.                        xs++;   
  92.                     }     
  93.             }               
  94.         }else
  95.           cout<<"Impossible"<<endl;
  96.           system("pause")
  97.         return 0;
  98. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     ios::sync_with_stdio(0);      
  7.     cin.tie(0);
  8.     int N;
  9.     cin>>N;
  10.     string s[N];
  11.     for(int i=0;i<N;i++)
  12.         cin>>s[i];
  13.     int ocnt=0;
  14.     int xcnt=0;
  15.     for(int i=0;i<N;i++)
  16.     {
  17.         for(int j=0;j<N;j++)
  18.         {
  19.             if(s[i][j]=='o')
  20.                 ocnt++;
  21.             else
  22.                 xcnt++;
  23.         }
  24.     }
  25.     int o;
  26.     int oscore=0;
  27.     int xscore=0;
  28.     if(ocnt==xcnt||ocnt==xcnt+1)
  29.     {
  30.         for(int i=0;i<N;i++){
  31.             o=0;
  32.             for(int j=0;j<N;j++){
  33.                 if(s[i][j]=='o')
  34.                     o++;
  35.         }
  36.         if(o==N)
  37.             oscore++;
  38.         else if(o==0)
  39.             xscore++;
  40.     }
  41.     for(int j=0;j<N;j++){
  42.         o=0;
  43.         for(int i=0;i<N;i++){
  44.                         if(s[i][j]=='o')
  45.                     o++;
  46.         }
  47.         if(o==N)
  48.             oscore++;
  49.         else if(o==0)
  50.             xscore++;
  51.     }
  52.     o=0;
  53.     for(int i=0;i<N;i++){
  54.         if(s[i][i]=='o')
  55.             o++;
  56.         }
  57.         if(o==N)
  58.             oscore++;
  59.         else if(o==0)
  60.             xscore++;
  61.         o=0;
  62.         for(int i=0;i<N;i++){
  63.             if(s[i][N-1-i]=='o')
  64.                 o++;
  65.         }
  66.         if(o==N)
  67.             oscore++;
  68.         else if(o==0)
  69.             xscore++;
  70.         cout<<oscore<<" "<<xscore<<endl;
  71.         }else        
  72.         cout<<"Impossible"<<endl;

  73.         system("pause");
  74.         return 0;  
  75. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.         ios::sync_with_stdio(0);      
  7.         cin.tie(0);
  8.         int N;
  9.         re:
  10.         cin>>N;
  11.         if(N<3||N>2000)
  12.         {
  13.                 goto re;
  14.                 }else{
  15.                         string s[N];
  16.                 for(int i=0;i<N;i++)
  17.                         {
  18.                     cin>>s[i];
  19.                         }
  20.                 int ocnt=0;
  21.                 int xcnt=0;
  22.                 for(int i=0;i<N;i++)
  23.                 {
  24.                 for(int j=0;j<N;j++)
  25.                 {
  26.                     if(s[i][j]=='o')
  27.                     {
  28.                         ocnt++;
  29.                     }   
  30.                     else
  31.                                         {
  32.                             xcnt++;
  33.                                         }            
  34.                 }
  35.                        }     
  36.                 int o;
  37.                 int oscore=0;
  38.                 int xscore=0;
  39.                 if(ocnt==xcnt||ocnt==xcnt+1)
  40.                 {
  41.                 for(int i=0;i<N;i++)
  42.                                 {
  43.                     o=0;
  44.                     for(int j=0;j<N;j++)
  45.                                         {
  46.                         if(s[i][j]=='o')
  47.                         o++;
  48.                     }
  49.                     if(o==N)
  50.                     {
  51.                             oscore++;
  52.                                         }
  53.                     else if(o==0)
  54.                     {
  55.                             xscore++;
  56.                                         }   
  57.                 }         
  58.                 for(int j=0;j<N;j++)
  59.                                 {
  60.                     o=0;
  61.                     for(int i=0;i<N;i++)
  62.                                         {
  63.                         if(s[i][j]=='o')
  64.                         o++;
  65.                     }
  66.                         if(o==N)
  67.                         {
  68.                                 oscore++;
  69.                                                 }                                
  70.                         else if(o==0)
  71.                         {
  72.                                 xscore++;
  73.                                                 }      
  74.                 }            
  75.                 o=0;
  76.                 for(int i=0;i<N;i++)
  77.                                 {
  78.                     if(s[i][i]=='o')
  79.                     {
  80.                              o++;
  81.                                         }                  
  82.                 }
  83.                 if(o==N)
  84.                 {
  85.                     oscore++;
  86.                                 }                                
  87.                 else if(o==0)
  88.                 {
  89.                                xscore++;
  90.                                 }                                            
  91.                 o=0;
  92.                 for(int i=0;i<N;i++)
  93.                                 {
  94.                     if(s[i][N-1-i]=='o')
  95.                     {
  96.                             o++;
  97.                                         }
  98.                 }
  99.                 if(o==N)
  100.                 {
  101.                         oscore++;
  102.                                 }         
  103.                 else if(o==0)
  104.                 {
  105.                         xscore++;
  106.                                 }
  107.                 cout<<oscore<<" "<<xscore<<endl;   
  108.                       }
  109.                         else
  110.                         {
  111.                                 cout<<"Impossible"<<endl;
  112.                         }        
  113.                
  114.                 }
  115.         system("pause");
  116.         return 0;  
  117. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.         ios::sync_with_stdio(0);      
  7.         cin.tie(0);      
  8.         int N;
  9.         cin>>N;
  10.         string s[N];  
  11.         for(int i=0;i<N;i++)
  12.                 cin>>s[i];
  13.         int ocnt=0;
  14.         int xcnt=0;        
  15.        for(int i=0;i<N;i++)
  16.         {
  17.         
  18.                 for(int j=0;j<N;j++)
  19.                 {
  20.                
  21.                         if(s[i][j]=='o')
  22.                                 ocnt++;
  23.                         else
  24.                                 xcnt++;
  25.                 }
  26.         }
  27.       
  28.         int o;
  29.         int oscore=0;
  30.         int xscore=0;        
  31.            
  32.         if(ocnt==xcnt||ocnt==xcnt+1)
  33.         {
  34.         
  35.                 for(int i=0;i<N;i++){
  36.                
  37.                         o=0;
  38.                         for(int j=0;j<N;j++){
  39.                                 if(s[i][j]=='o')
  40.                                         o++;
  41.                         }
  42.                         
  43.                         if(o==N)
  44.                                 oscore++;
  45.                         else if(o==0)
  46.                                 xscore++;
  47.                 }
  48.                
  49.                 for(int j=0;j<N;j++){
  50.                
  51.                         o=0;
  52.                         for(int i=0;i<N;i++){
  53.                                 if(s[i][j]=='o')
  54.                                         o++;
  55.                         }
  56.                         
  57.                         if(o==N)
  58.                                 oscore++;
  59.                         else if(o==0)
  60.                                 xscore++;
  61.                 }
  62.                
  63.                 o=0;
  64.                 for(int i=0;i<N;i++){
  65.                                        
  66.                         if(s[i][i]=='o')
  67.                                 o++;
  68.                         }
  69.                        
  70.                         if(o==N)
  71.                                 oscore++;
  72.                         else if(o==0)
  73.                                 xscore++;
  74.                               
  75.                 o=0;
  76.                 for(int i=0;i<N;i++){
  77.                         
  78.                         if(s[i][N-1-i]=='o')
  79.                                 o++;
  80.                         }
  81.                         
  82.                         if(o==N)
  83.                                 oscore++;
  84.                         else if(o==0)
  85.                                 xscore++;
  86.                
  87.                 cout<<oscore<<" "<<xscore<<endl;
  88.                
  89.         }else        
  90.                 cout<<"Impossible"<<endl;
  91.       
  92.         system("pause");
  93.         return 0;  
  94. }  
複製代碼

TOP

返回列表