Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.20 KB | None | 0 0
  1. <?php
  2.  
  3. function estSymetrique($N, $M, $matrix)
  4. {
  5.    
  6.     $nbrColonePair = true;
  7.     if($M%2 != 0){
  8.         $nbrColonePair = false;
  9.     }
  10.    
  11.     $nbrColoneCut = floor($M/2)-1;
  12.  
  13.     $sommeMoitierUneLigne = array();
  14.     $total = 0;
  15.     foreach($matrix as $ligne => $values){
  16.         $count = 0;
  17.         for($i=0;$i<=$nbrColoneCut;$i++){
  18.             $count += $values[$i];
  19.         }
  20.         $total += $count;
  21.         $sommeMoitierUneLigne[] = $count;
  22.     }
  23.     $sommeMoitierUneLigne['total'] = $total;
  24.    
  25.  
  26.      $sommeMoitierDeuxLigne = array();
  27.      $total = 0;
  28.      foreach($matrix as $ligne => $values){
  29.  
  30.          $count = 0;
  31.          if($nbrColonePair){ // si true
  32.             for($i=$nbrColoneCut+1;$i<=$nbrColoneCut+1+$nbrColoneCut;$i++){
  33.                 $count += $values[$i];
  34.             }
  35.          } else { // si false
  36.             for($i=$nbrColoneCut+2;$i<=$nbrColoneCut+2+$nbrColoneCut;$i++){
  37.                 $count += $values[$i];
  38.             }
  39.          }
  40.          $total += $count;
  41.          $sommeMoitierDeuxLigne[] = $count;          
  42.      }
  43.      $sommeMoitierDeuxLigne['total'] = $total;
  44.    
  45.    
  46.     if($sommeMoitierUneLigne['total'] != $sommeMoitierDeuxLigne['total']){
  47.         echo 0;
  48.         die();
  49.     }
  50.    
  51.     for($i=0;$i<=count($sommeMoitierUneLigne)-2;$i++){
  52.         if($sommeMoitierUneLigne[$i] != $sommeMoitierDeuxLigne[$i]){
  53.             echo 0;
  54.             die();
  55.         }
  56.     }
  57.    
  58.     unset($sommeMoitierUneLigne);
  59.     unset($sommeMoitierDeuxLigne);
  60.    
  61.     $sommeMoitierUneColone = array();
  62.     for($i=0;$i<=$nbrColoneCut;$i++){
  63.         $count = 0;
  64.         foreach($matrix as $ligne => $values){
  65.             $count += $values[$i];
  66.         }
  67.         $sommeMoitierUneColone[] = $count;
  68.     }  
  69.    
  70.  
  71.     $sommeMoitierDeuxColone = array();
  72.     for($i=$M-1;$i>=$M-1-$nbrColoneCut;$i--){
  73.         $count = 0;
  74.         foreach($matrix as $ligne => $values){
  75.             $count = $count + $values[$i];
  76.         }
  77.  
  78.         $sommeMoitierDeuxColone[] = $count;
  79.     }
  80.    
  81.     for($i=0;$i<=count($sommeMoitierUneColone)-2;$i++){
  82.         if($sommeMoitierUneColone[$i] != $sommeMoitierDeuxColone[$i]){
  83.             echo 0;
  84.             die();
  85.         }
  86.     }
  87.    
  88.     echo 1;
  89.    
  90. }
  91.  
  92. $N = intval(fgets(STDIN));
  93. $M = intval(fgets(STDIN));
  94. $matrix = array();
  95. for ($_i = 0; $_i < $N; $_i++)
  96.     $matrix[] = array_map("intval", explode(" ", rtrim(fgets(STDIN), "\n")));
  97.  
  98. estSymetrique($N, $M, $matrix);
  99. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement