Submission #137884

# Submission time Handle Problem Language Result Execution time Memory
137884 2019-07-28T13:20:21 Z vardan__02 Chessboard (IZhO18_chessboard) C++14
0 / 100
35 ms 3576 KB
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cstring>
#include <string>
#include <vector>
#include <cstdio>
#include <queue>
#include <deque>
#include <stack>
#include <cmath>
#include <list>
#include <set>
#include <map>
using namespace std;
typedef long long ll;
#define MP make_pair
#define PB push_back
ll n,k,p,u,ans,color[100005],i,j,qanak[105],v,x[100005],y[100005],p1,p2,q1,q2,ans1,ans2;
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    for(i=2;i<=100000;i++)
    {
        if(!color[i])
        {
            for(j=2*i;j<=100000;j+=i)
                color[j]=1;
        }
    }
    cin>>n>>k;
    for(i=n;i>=2;i--)
    {
        if(!color[i] && n%i==0)
        {
            p2=i;
            break;
        }
    }
    for(i=2;i<=n;i++)
    {
        if(!color[i] && n%i==0)
        {
            p1=i;
            break;
        }
    }
    for(i=1;i<=k;i++)
    cin>>x[i]>>y[i]>>x[i]>>y[i];
    for(i=1;i<=k;i++)
    {
        ll g,h;
        if(x[i]%p1==0)
            g=x[i]/p1;
        else
            g=x[i]/p1+1;
        if(y[i]%p1==0)
            h=y[i]/p1;
        else
            h=y[i]/p1+1;
        if(h%2==g%2)
            u++;
        else
            v++;
    }
    q1=n/p1;
    ans1=q1*q1/2+1;
    ans1=ans1*p1*p1;
    ans1=ans1-u+v;
    ans2=q1*q1/2;
    ans2=ans2*p1*p1;
    ans2=ans2-v+u;
    ans=min(ans1,ans2);
    u=0; v=0;
    for(i=1;i<=k;i++)
    {
        ll g,h;
        if(x[i]%p2==0)
            g=x[i]/p2;
        else
            g=x[i]/p2+1;
        if(y[i]%p2==0)
            h=y[i]/p2;
        else
            h=y[i]/p2+1;
        if(h%2==g%2)
            u++;
        else
            v++;
    }
    q2=n/p2;
    ans1=q2*q2/2+1;
    ans1=ans1*p2*p2;
    ans1=ans1-u+v;
    ans2=q2*q2/2;
    ans2=ans2*p2*p2;
    ans2=ans2-v+u;
    ans=min(ans,ans1);
    ans=min(ans,ans2);
    cout<<ans<<endl;
    return 0;
}
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 1144 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 35 ms 3576 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 1144 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 1144 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 35 ms 3576 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 1144 KB Output isn't correct
2 Halted 0 ms 0 KB -