Submission #425037

#TimeUsernameProblemLanguageResultExecution timeMemory
425037A_DTriangles (CEOI18_tri)C++14
35 / 100
451 ms304 KiB
#include <bits/stdc++.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
//#include "trilib.h"
using namespace std;

static int n;
static long long *x, *y;
static int queries=0;

static void init() {
	static int is_inited=0;
	if (is_inited)
		return;
	is_inited=1;
	assert(scanf("%d", &n)==1);
	x=(long long*)malloc((n+1)*sizeof(long long));
	y=(long long*)malloc((n+1)*sizeof(long long));
	for (int i=1; i<=n; i++)
		assert(scanf("%lld%lld", &x[i], &y[i])==2);
}

int get_n() {
	init();
	return n;
}

int is_clockwise(int a, int b, int c) {
	init();
	assert(a>=1 && a<=n);
	assert(b>=1 && b<=n);
	assert(c>=1 && c<=n);
	assert(a!=b && a!=c && b!=c);
	queries++;
        if(queries == 1000 * 1000 + 1)
            printf("Too many queries!");
	return (x[b]-x[a])*(y[c]-y[a])-(x[c]-x[a])*(y[b]-y[a])<0;
}

void give_answer(int s) {
	init();
	printf("%d\n", s);
}




int nn;
bool ok(int i,int j)
{
    int cnt=0;
    for(int k=1;k<=nn;k++){
        if(k==i||k==j)continue;
        int b=is_clockwise(i,j,k);
        cnt|=(1<<b);
    }
    return cnt<3;
}
void solve()
{
    nn=get_n();
    int ans=0;
    for(int i=1;i<=nn;i++){
        for(int j=i+1;j<=nn;j++){
            if(i==j)continue;
            if(ok(i,j))ans+=1;
        }
    }
    give_answer(ans);
}
main()
{
    int t=1;
    while(t--)solve();
    //cin>>t;
}






Compilation message (stderr)

tri.cpp:72:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   72 | main()
      | ^~~~
#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...