Submission #1134526

#TimeUsernameProblemLanguageResultExecution timeMemory
1134526ezzzayChessboard (IZhO18_chessboard)C++20
70 / 100
190 ms2584 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define ff first #define ss second #define pb push_back const int N=3e3; int a[N][N]; void subtsk1(int n){ int ans=n*n/2; for(int i=1;i<n;i++){ if(n%i==0){ int b=n*n/i/i; ans=min(ans,b/2*i*i); } } cout<<ans; } bool check(int n){ for(int i=2;i<=sqrt(n);i++){ if(n%i==0)return 0; } return 1; } void subtsk2(int n, int m){ int a=0; int b=0; int d=n*n-n*n/2; int e=n*n/2; for(int i=0;i<m;i++){ int x,y; cin>>x>>y>>x>>y; if(x%2==y%2){ a++; } else{ b++; } } cout<<min(d-a+b,e-b+a); } void sbtsk3(int n, int m){ int ans=n*n; vector<pair<int,int>>vc; for(int i=0;i<m;i++){ int x,y; cin>>x>>y>>x>>y; vc.pb({x,y}); } for(int i=1;i<=n/2;i++){ if(n%i==0){ int a=0; int b=0; for(auto p:vc){ int x=p.ff; int y=p.ss; int t=i*2; if((1<=x%t and x%t<=i and 1<=y%t and y%t<=i) or ( !(1<=x%t and x%t<=i) and !(1<=y%t and y%t<=i))){ a++; } else{ b++; } } int bc=n*n/i/i; int e=bc/2 * i* i; int d=(bc-bc/2)*i*i; //cout<<" :: " <<a<<" "<<b<<" "<<d<<" "<<e<<endl; ans=min(ans,min(d-a+b,e-b+a)); } } cout<<ans; } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,m; cin>>n>>m; if(m==0){ subtsk1(n); return 0; } if(check(n)){ subtsk2(n,m); return 0; } sbtsk3(n,m); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...