Submission #92888

#TimeUsernameProblemLanguageResultExecution timeMemory
92888muradeynChessboard (IZhO18_chessboard)C++14
70 / 100
1063 ms4344 KiB
/* Murad Eynizade */ #include <bits/stdc++.h> #define intt long long #define FAST_READ ios_base::sync_with_stdio(0);cin.tie(0); #define SIZE 100001 #define INF INT_MAX #define F first #define S second #define in(a) scanf("%d",&a); #define outn(a) printf("%d\n",&a); #define outs(a) printf("%d ",&a); using namespace std; struct rect{ int a , b , c , d; }; rect sub[SIZE]; intt need; vector<intt>ans; intt n , k; vector<intt>dv; int main() { FAST_READ; cin>>n>>k; for (int i = 0;i<k;i++)cin>>sub[i].a>>sub[i].b>>sub[i].c>>sub[i].d; dv.push_back(1); for (int i = 2;i * i <= n;i++) { if (n % i == 0) { dv.push_back(i); if (i * i == n)continue; dv.push_back(n / i); } } for (intt i : dv) { need = ( (n / i + 1) / 2 ) * ( (n / i + 1) / 2 ); need += (n / i / 2) * (n / i / 2); need *= (i * i); for (int j = 0;j < k;j++) { int row , column; if (sub[j].a % i == 0)row = sub[j].a / i; else row = (sub[j].a + i) / i; if (sub[j].b % i == 0)column = sub[j].b / i; else column = (sub[j].b + i) / i; if (row % 2 == column % 2) need--; else need++; } ans.push_back(need); need = n * n; need -= ( (n / i + 1) / 2 ) * ( (n / i + 1) / 2 ) * (i * i); need -= (n / i / 2) * (n / i / 2) * (i * i); for (int j = 0;j < k;j++) { int row , column; if (sub[j].a % i == 0)row = sub[j].a / i; else row = (sub[j].a + i) / i; if (sub[j].b % i == 0)column = sub[j].b / i; else column = (sub[j].b + i) / i; if (row % 2 == column % 2) need++; else need--; } ans.push_back(need); } sort(ans.begin(),ans.end()); cout<<ans[0]<<endl; return 0; }
#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...