Submission #1908379


Source Code Expand

#include <cstdio>
#include <cmath>
#include <algorithm>
#define repu(i,x,y) for (int i=x; i<=y; ++i)
using namespace std;

const int p=998244353;
int n,x[210],y[210],pow2[210],ans;
bool flag[210][210];
struct data
{
    int id;
    double agl;
    bool operator<(const data &t) const
    {
        return agl<t.agl;
    }
} a[210];

double get(int y,int x)
{
    if (y<0 || !y && x<0)
        return atan2(-y,-x);
    return atan2(y,x);
}

int main()
{
    scanf("%d",&n);
    repu(i,1,n)
        scanf("%d%d",&x[i],&y[i]);
    pow2[0]=1;
    repu(i,1,n)
        pow2[i]=pow2[i-1]*2%p;
    ans=(pow2[n]+p-n-1)%p;
    repu(i,1,n)
    {
        int m=0;
        repu(j,i+1,n)
            a[++m]=(data){j,get(y[j]-y[i],x[j]-x[i])};
        sort(a+1,a+1+m);
        for (int j=1,k; j<=m; j=k)
        {
            for (k=j+1; k<=m && a[k].agl==a[j].agl; ++k);
            if (!flag[i][a[j].id])
            {
                (ans+=p-pow2[k-j+1]+k-j+2)%=p;
                repu(ii,j,k-1)
                {
                    flag[i][a[ii].id]=flag[a[ii].id][i]=1;
                    repu(jj,ii+1,k-1)
                        flag[a[ii].id][a[jj].id]=flag[a[jj].id][a[ii].id]=1;
                }
            }
        }
    }
    printf("%d\n",ans);
    return 0;
}

Submission Info

Submission Time
Task E - ConvexScore
User dwjshift
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1321 Byte
Status AC
Exec Time 2 ms
Memory 256 KB

Compile Error

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

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 700 / 700
Status
AC × 3
AC × 36
Set Name Test Cases
Sample 0_000.txt, 0_001.txt, 0_002.txt
All 0_000.txt, 0_001.txt, 0_002.txt, 1_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt, 1_015.txt, 1_016.txt, 1_017.txt, 1_018.txt, 1_019.txt, 1_020.txt, 1_021.txt, 1_022.txt, 1_023.txt, 1_024.txt, 1_025.txt, 1_026.txt, 1_027.txt, 1_028.txt, 1_029.txt, 1_030.txt, 1_031.txt, 1_032.txt, 1_033.txt, 1_034.txt, 1_035.txt
Case Name Status Exec Time Memory
0_000.txt AC 1 ms 128 KB
0_001.txt AC 1 ms 128 KB
0_002.txt AC 1 ms 128 KB
1_003.txt AC 1 ms 128 KB
1_004.txt AC 1 ms 128 KB
1_005.txt AC 1 ms 256 KB
1_006.txt AC 1 ms 128 KB
1_007.txt AC 2 ms 256 KB
1_008.txt AC 1 ms 256 KB
1_009.txt AC 1 ms 256 KB
1_010.txt AC 1 ms 256 KB
1_011.txt AC 1 ms 256 KB
1_012.txt AC 2 ms 256 KB
1_013.txt AC 1 ms 256 KB
1_014.txt AC 1 ms 128 KB
1_015.txt AC 1 ms 256 KB
1_016.txt AC 1 ms 256 KB
1_017.txt AC 2 ms 256 KB
1_018.txt AC 2 ms 256 KB
1_019.txt AC 2 ms 256 KB
1_020.txt AC 2 ms 256 KB
1_021.txt AC 2 ms 256 KB
1_022.txt AC 2 ms 256 KB
1_023.txt AC 2 ms 256 KB
1_024.txt AC 2 ms 256 KB
1_025.txt AC 2 ms 256 KB
1_026.txt AC 2 ms 256 KB
1_027.txt AC 1 ms 256 KB
1_028.txt AC 1 ms 256 KB
1_029.txt AC 2 ms 256 KB
1_030.txt AC 2 ms 256 KB
1_031.txt AC 2 ms 256 KB
1_032.txt AC 2 ms 256 KB
1_033.txt AC 2 ms 256 KB
1_034.txt AC 2 ms 256 KB
1_035.txt AC 2 ms 256 KB