Advertisement
Zeinab_Hamdy

Untitled

Aug 27th, 2023 (edited)
1,647
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.33 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define nl "\n"
  4. #define fi first
  5. #define se second
  6. #define pb push_back
  7. #define ll long long
  8. #define ull unsigned ll
  9. #define RV  return void
  10. #define inf 2000000000
  11. #define sz(x) int(x.size())
  12. #define all(v) v.begin(), v.end()
  13. #define rall(v) v.rbegin(), v.rend()
  14. #define Mini(x) *min_element(all(x))
  15. #define Maxi(x) *max_element(all(x))
  16. #define fixed(n) fixed << setprecision(n)
  17. // #define ceil(w, m) (((w) / (m)) + ((w) % (m) ? 1 : 0))
  18. #define cin(v) for (auto&i:v) cin >> i;
  19. #define cout(v) for (auto&i:v) cout << i << " ";
  20. #define clr(memo, x) memset(memo, x, sizeof memo)
  21. #define updmin(a, b) a = min(a, b)
  22. #define updmax(a, b) a = max(a, b)
  23. #define FastCode ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
  24. vector < string > ternary= {"NO\n" , "YES\n"};
  25.  
  26. void  Zainab(){
  27.             #ifndef ONLINE_JUDGE
  28.               freopen("input.txt", "r", stdin);
  29.               freopen("output.txt", "w", stdout);
  30.             #endif
  31. }
  32.  
  33.  
  34. /*================================  Prblem solution  ================================ */
  35.  
  36.  
  37.  
  38.  
  39. void myCode(){
  40.  
  41. int n ;
  42. cin >> n ;
  43. vector < vector < int > > v (n+1 , vector < int > (n+1 ));
  44.  
  45. for(int i =1 ; i <= n ; i++){
  46.     for(int j =1 ; j <= n ; j++) {
  47.         char c;
  48.         cin >> c;
  49.         v[i][j] = c-'0';
  50.     }
  51. }
  52.  
  53. int ans =0;
  54. vector < pair < int , int > > pre ;
  55.  
  56.  
  57.  
  58. for(int i =1 ; i <= n ; i++){
  59.    
  60.    
  61.     vector < int > curr(n+1 , 0);
  62.     int Sum =0;
  63.    
  64.  
  65.     for(int j=1 ;j <= n ; j++){
  66.         if(v[i][j]){
  67.             ans++;
  68.         //   curr[max(1 , j-1)]++;
  69.         //   curr[min(n , j+1)]++;
  70.            
  71.            pre.pb({max(1 , j) , min(n , j)});
  72.            v[i][j]=0;
  73.         }
  74.     }
  75.      
  76.     for(auto& p : pre){
  77.         p.fi -- , p.se++;
  78.          curr[max(1 , p.fi)]++ ;
  79.          curr[min(n , p.se)]++;
  80.     }
  81.    
  82.    if(i+1 <= n ){
  83.         for(int k =1 ; k <= n ; k++){
  84.               v[i+1][k]+=Sum ,  v[i+1][k]%=2;
  85.               Sum+= curr[k];
  86.         }
  87.    }
  88.    
  89.    
  90. }
  91.  
  92. // cout << sz(pre) << " ";
  93. cout << ans << nl;
  94.    
  95. }
  96.  
  97.  
  98. int main(){
  99.                                    FastCode ;
  100.                                    Zainab() ;
  101.  
  102.     int testCase=1;
  103.           cin >> testCase ;
  104.       for(int i=1 ; i<= testCase ; i++)
  105.         myCode();
  106.  
  107.     return 0;
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement