#include <bits/stdc++.h> using namespace std; int n,m,q; bool t[2001][2001]; int k[2001]; int w[2001]; int main() { int x1,x2,y1,y2; ios_base::sync_with_stdio(false); cin.tie(NULL); cin>>n>>m>>q; for(int i=0;i<m;i++){ cin>>x1>>y1>>x2>>y2; for(int x=x1;x<=x2;x++) for(int y=y1;y<=y2;y++) t[x][y]^=1; } int ile = 0; for(int i =1;i<=n;i++) for(int j =1;j<=n;j++) if(t[i][j])ile++; for(int i =1;i<=n;i++) for(int j =1;j<=n;j++){ k[i]+=t[i][j]; w[j]+=t[i][j]; } int ck = 0,cw =0,dk=0,dw=0; for(int i =1;i<=n;i++){ if(k[i]==n)ck++; if(k[i]==0)dk++; if(w[i]==n)cw++; if(w[i]==0)dw++; } int c=ile; int d=n*n-ile; cout<<min(c-ck*cw,d-dk*dw)<<"\n"; for(int i = 0;i<q;i++) { cin>>x1>>y1; if(t[x1][y1]){ if(k[x1]==n){ ck--; } if(k[x1]==1){ dk++; } k[x1]--; if(w[y1]==n){ cw--; } if(w[y1]==1){ dw++; } w[y1]--; ile--; } else{ if(k[x1]==n-1){ ck++; } if(k[x1]==0){ dk--; } k[x1]++; if(w[y1]==n-1){ cw++; } if(w[y1]==0){ dw--; } w[y1]++; ile++; } c=ile; d=n*n-ile; t[x1][y1]^=1; cout<<min(c-ck*cw,d-dk*dw)<<"\n"; } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | #include <bits/stdc++.h> using namespace std; int n,m,q; bool t[2001][2001]; int k[2001]; int w[2001]; int main() { int x1,x2,y1,y2; ios_base::sync_with_stdio(false); cin.tie(NULL); cin>>n>>m>>q; for(int i=0;i<m;i++){ cin>>x1>>y1>>x2>>y2; for(int x=x1;x<=x2;x++) for(int y=y1;y<=y2;y++) t[x][y]^=1; } int ile = 0; for(int i =1;i<=n;i++) for(int j =1;j<=n;j++) if(t[i][j])ile++; for(int i =1;i<=n;i++) for(int j =1;j<=n;j++){ k[i]+=t[i][j]; w[j]+=t[i][j]; } int ck = 0,cw =0,dk=0,dw=0; for(int i =1;i<=n;i++){ if(k[i]==n)ck++; if(k[i]==0)dk++; if(w[i]==n)cw++; if(w[i]==0)dw++; } int c=ile; int d=n*n-ile; cout<<min(c-ck*cw,d-dk*dw)<<"\n"; for(int i = 0;i<q;i++) { cin>>x1>>y1; if(t[x1][y1]){ if(k[x1]==n){ ck--; } if(k[x1]==1){ dk++; } k[x1]--; if(w[y1]==n){ cw--; } if(w[y1]==1){ dw++; } w[y1]--; ile--; } else{ if(k[x1]==n-1){ ck++; } if(k[x1]==0){ dk--; } k[x1]++; if(w[y1]==n-1){ cw++; } if(w[y1]==0){ dw--; } w[y1]++; ile++; } c=ile; d=n*n-ile; t[x1][y1]^=1; cout<<min(c-ck*cw,d-dk*dw)<<"\n"; } return 0; } |