제출 #493355

#제출 시각아이디문제언어결과실행 시간메모리
493355irmuunChessboard (IZhO18_chessboard)C++17
16 / 100
97 ms3024 KiB
#include<bits/stdc++.h> using namespace std; #define pb push_back #define ll long long #define ff first #define ss second #define PI 3.14159265359 ll n,m,t,p,h,a,b,c,d,e,f,i,j,k,r,l,mod=1000000007,mod1=998244353,MAX=1e18,ans; ll X1[100001],X2[100001],Y1[100001],Y2[100001]; string s,u; ll df[101]; vector<pair<ll,ll> >v; vector<ll>dv[101]; void dfs(ll x){ df[x]=1; for(ll i=0;i<dv[x].size();i++){ if(df[dv[x][i]]==0){ dfs(dv[x][i]); } } } ll fastPow(ll a,ll b){ ll d=1; while(b>0){ if(b%2==1){ d=d*a%mod; } b/=2; a=a*a%mod; } return d; } ll check(){ ll c=n/i; ll b,w; if(c%2==0){ b=n*n/2; w=b; } else{ b=(n-i)*(n+i)/2; w=b+(i*i); } ll num[2]={0}; for(ll i=1;i<=k;i++){ num[(((X1[i]-1)/c)+((Y1[i]-1)/c))%2]++; } return min((w-num[0])+num[1],(b-num[1])+num[0]); } int main(){ cin>>n>>k; for(i=1;i<=k;i++){ cin>>X1[i]>>Y1[i]>>X2[i]>>Y2[i]; } if(k==0){ ans=n*n/2; for(i=1;i<n;i++){ if(n%i==0&&n/i%2==1){ d=n*n-(i*i); ans=min(ans,d/2); } } cout<<ans; return 0; } p=0; for(i=2;i<=sqrt(n);i++){ if(n%i==0){ p=1; break; } } if(p==0){ d=n*n/2; if(n==2){ e=d; } else{ e=d+1; } r=0; l=0; for(i=1;i<=k;i++){ if((X1[i]+Y1[i])%2==0){ r++; } else{ l++; } } cout<<min((e-r)+l,(d-l)+r); return 0; } ans=n*n; for(i=1;i<n;i++){ if(n%i==0){ ans=min(ans,check()); } } cout<<ans; }

컴파일 시 표준 에러 (stderr) 메시지

chessboard.cpp: In function 'void dfs(long long int)':
chessboard.cpp:16:17: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   16 |     for(ll i=0;i<dv[x].size();i++){
      |                ~^~~~~~~~~~~~~
#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...