Submission #3027509


Source Code Expand

#include <cstdio>
#include <vector>
#include <set>
#include <utility>
using namespace std;

vector<pair<int,int> > al[609][609];
vector<pair<int,int> > bl[609][609];
int A[609][609];
int B[609][609];
vector<pair<int,int> > V[2][2];

void dfsa(int x, int y, int v){
    A[x][y] = v;
    for (auto i = al[x][y].begin(); i != al[x][y].end(); i++){
        if (A[i->first][i->second]==0) dfsa(i->first,i->second,3-v);
    }
}

void dfsb(int x, int y, int v){
    B[x][y] = v;
    for (auto i = bl[x][y].begin(); i != bl[x][y].end(); i++){
        if (B[i->first][i->second]==0) dfsb(i->first,i->second,3-v);
    }
}

int main(){
    int N;
    scanf("%d", &N);
    int D1, D2;
    scanf("%d %d", &D1, &D2);
    for (int i = 0; i < 2*N; i++){
        for (int j = 0; j < 2*N; j++){
            int k = 0;
            while ((i-k)*(i-k)>=D1) k++;
            int l = j;
            for (;(k-i)*(k-i)<=D1&&k<2*N; k++){
                if (k<=i){
                    while ((k-i)*(k-i)+(j-l)*(j-l)<D1) l++;
                }
                else {
                    while ((k-i)*(k-i)+(j-l)*(j-l)>D1) l--;
                }
                if ((k-i)*(k-i)+(j-l)*(j-l)==D1&&l<2*N){
                    al[i][j].push_back(make_pair(k,l));
                    //printf("A:(%d,%d) (%d,%d)\n", i, j, k, l);
                }
            }
            k = 0, l = j;
            while ((i-k)*(i-k)>=D2) k++;
            for (;(k-i)*(k-i)<=D2&&k<2*N; k++){
                if (k<=i){
                    while ((k-i)*(k-i)+(j-l)*(j-l)<D2) l++;
                }
                else {
                    while ((k-i)*(k-i)+(j-l)*(j-l)>D2) l--;
                }
                if ((k-i)*(k-i)+(j-l)*(j-l)==D2&&l<2*N){
                    bl[i][j].push_back(make_pair(k,l));
                    //printf("B:(%d,%d) (%d,%d)\n", i, j, k, l);
                }
            }
        }
    }
    for (int i = 0; i < 2*N; i++){
        for (int j = 0; j < 2*N; j++){
            if (A[i][j]==0) dfsa(i,j,1);
            if (B[i][j]==0) dfsb(i,j,1);
            V[A[i][j]-1][B[i][j]-1].push_back(make_pair(i,j));
        }
    }
    for (int i = 0; i < 2; i++){
        for (int j = 0; j < 2; j++){
            if (V[i][j].size()>=N*N){
                for (int k = 0; k < N*N; k++){
                    printf("%d %d\n", V[i][j][k].first, V[i][j][k].second);
                }
                return 0;
            }
        }
    }
}

Submission Info

Submission Time
Task D - Choosing Points
User gabrielgoh
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2499 Byte
Status WA
Exec Time 1061 ms
Memory 99424 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:29:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &N);
                    ^
./Main.cpp:31:29: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d", &D1, &D2);
                             ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 800
Status
AC × 2
AC × 8
WA × 38
Set Name Test Cases
Sample sample01.txt, sample02.txt
All sample01.txt, sample02.txt, extra00.txt, extra01.txt, extra02.txt, extra03.txt, extra04.txt, extra05.txt, extra06.txt, extra07.txt, extra08.txt, extra09.txt, extra10.txt, extra11.txt, extra12.txt, extra13.txt, extra14.txt, extra15.txt, extra16.txt, extra17.txt, extra18.txt, extra19.txt, extra20.txt, in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, sample01.txt, sample02.txt
Case Name Status Exec Time Memory
extra00.txt WA 720 ms 49772 KB
extra01.txt WA 776 ms 54512 KB
extra02.txt WA 882 ms 58612 KB
extra03.txt WA 1061 ms 57084 KB
extra04.txt WA 825 ms 58344 KB
extra05.txt WA 853 ms 46992 KB
extra06.txt WA 649 ms 58288 KB
extra07.txt WA 876 ms 63348 KB
extra08.txt WA 1010 ms 77048 KB
extra09.txt WA 692 ms 46444 KB
extra10.txt WA 858 ms 66916 KB
extra11.txt WA 735 ms 47992 KB
extra12.txt WA 1006 ms 51692 KB
extra13.txt WA 894 ms 44020 KB
extra14.txt WA 936 ms 48248 KB
extra15.txt WA 774 ms 48760 KB
extra16.txt WA 818 ms 60916 KB
extra17.txt WA 943 ms 44608 KB
extra18.txt WA 923 ms 47216 KB
extra19.txt AC 996 ms 42480 KB
extra20.txt AC 612 ms 44632 KB
in01.txt WA 450 ms 50596 KB
in02.txt WA 680 ms 76192 KB
in03.txt WA 849 ms 56692 KB
in04.txt WA 454 ms 58888 KB
in05.txt WA 610 ms 63444 KB
in06.txt WA 389 ms 62916 KB
in07.txt WA 923 ms 57708 KB
in08.txt WA 353 ms 57300 KB
in09.txt WA 83 ms 32964 KB
in10.txt WA 328 ms 50944 KB
in11.txt WA 304 ms 50012 KB
in12.txt WA 364 ms 65644 KB
in13.txt WA 343 ms 61932 KB
in14.txt WA 396 ms 68680 KB
in15.txt WA 403 ms 75492 KB
in16.txt AC 366 ms 63076 KB
in17.txt WA 503 ms 99424 KB
in18.txt WA 395 ms 68680 KB
in19.txt AC 345 ms 52376 KB
in20.txt WA 318 ms 51940 KB
in21.txt WA 325 ms 51832 KB
sample01.txt AC 6 ms 18560 KB
sample02.txt AC 7 ms 18560 KB