제출 #68091

#제출 시각아이디문제언어결과실행 시간메모리
68091MatheusLealVChessboard (IZhO18_chessboard)C++17
0 / 100
57 ms2940 KiB
#include <bits/stdc++.h> #define N 100050 #define f first #define s second using namespace std; typedef pair<int, int> pii; typedef long long ll; int n, k, x[N], y[N], xf[N], yf[N]; ll ans = N * N; vector<int> d; int main() { ios::sync_with_stdio(false); cin.tie(0); cin>>n>>k; for(int i = 1; i <= k; i++) cin>>x[i]>>y[i]>>xf[i]>>yf[i]; for(int i = 1; i <= k; i++) x[i] --, y[i] --, xf[i] --, yf[i] --; for(int i = 1; i <= sqrt(n); i++) { if((n % i) != 0) continue; d.push_back(i); if(i != n/i) d.push_back(n/i); } for(auto r: d) { ll pretocerto = 0, pretoerrado = 0, tot; tot = ( (n/r) * (n/r) + 1)/2; tot = (tot * r * r); //if(r != 2) continue; for(int i = 1; i <= k; i++) { int linha = (x[i] % (2*r) < r ? 1 : 0), coluna = (y[i] % (2*r) < r ? 1 : 0); if(!linha) coluna = !coluna; //cout<<x[i]<<" "<<y[i]<<" COR = "<<linha<<" "<<coluna<<"\n"; if(!coluna) pretoerrado ++; else pretocerto ++; } //cout<<custo<<" "<<branco<<"\n"; ans = min(ans, tot - pretocerto + pretoerrado); } cout<<ans<<"\n"; }

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

chessboard.cpp:11:12: warning: integer overflow in expression [-Woverflow]
 ll ans = N * N;
            ^
#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...