Submission #168426

#TimeUsernameProblemLanguageResultExecution timeMemory
168426juggernautChessboard (IZhO18_chessboard)C++14
47 / 100
661 ms3836 KiB
#include<bits/stdc++.h> #define int long long int #define fr first #define sc second using namespace std; int n,k,i,j,x,y,res; pair<int,int>p[100001]; bool a[1001][1001]; int get(int f,int q){ int cnt=0; for(int i=0;i<n;i++) for(int j=0;j<n;j++){ x=i/f; y=j/f; if(q){ if((x+y)%2==0){ if(a[i][j])cnt++; }else{ if(!a[i][j])cnt++; } }else{ if((x+y)%2==0){ if(!a[i][j])cnt++; }else{ if(a[i][j])cnt++; } } } return cnt; } int get(int f){ return min(get(f,0),get(f,1)); } void subtask2(){ int c[2]; c[0]=c[1]=0; for(i=0;i<k;i++){ scanf("%lld%lld%lld%lld",&p[i].fr,&p[i].sc,&p[i].fr,&p[i].sc); p[i].fr--; p[i].sc--; c[(p[i].fr+p[i].sc)%2]++; } res=(n/2)*n+((n%2)*(n/2))-c[1]+c[0]; res=min(res,(n/2)*n+((n%2)*((n+1)/2))-c[0]+c[1]); printf("%lld",res); exit(0); } main(){ scanf("%lld%lld",&n,&k); if(n>1000)subtask2(); for(i=0;i<k;i++){ scanf("%lld%lld%lld%lld",&p[i].fr,&p[i].sc,&p[i].fr,&p[i].sc); p[i].fr--; p[i].sc--; a[p[i].fr][p[i].sc]=1; } res=get(1); for(j=2;j*j<=n;j++){ if(n%j==0){ res=min(res,get(j)); res=min(res,get(n/j)); } } printf("%lld",res); }

Compilation message (stderr)

chessboard.cpp:48:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
chessboard.cpp: In function 'void subtask2()':
chessboard.cpp:38:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%lld%lld%lld%lld",&p[i].fr,&p[i].sc,&p[i].fr,&p[i].sc);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
chessboard.cpp: In function 'int main()':
chessboard.cpp:49:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%lld%lld",&n,&k);
     ~~~~~^~~~~~~~~~~~~~~~~~
chessboard.cpp:52:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%lld%lld%lld%lld",&p[i].fr,&p[i].sc,&p[i].fr,&p[i].sc);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...