Submission #1080470

# Submission time Handle Problem Language Result Execution time Memory
1080470 2024-08-29T10:16:29 Z kwongweng Abduction 2 (JOI17_abduction2) C++17
0 / 100
25 ms 32404 KB
#include <bits/stdc++.h>
using namespace std;
typedef vector<int> vi;
typedef long long ll;
typedef pair<int,int> ii;
typedef long double ld;
#define FOR(i,a,b) for(int i=a; i<b; i++)
#define ROF(i,a,b) for(int i=a; i>=b; i--)
#define pb push_back
#define fi first
#define se second
#define ms memset
typedef complex<ld> pt;


int main(){
    ios::sync_with_stdio(false);
    cout.tie(0); cin.tie(0);
    int n,m; cin>>n>>m;
    int cnt[m+1][m+1]; ms(cnt,0,sizeof(cnt));
    vector<pt> p(n); vi c(n);
    FOR(i,0,n){
        int a,b; cin>>a>>b;
        p[i] = {a,b};
        cin>>c[i];
    }
    ld eps = 1e-12;
    ll d1,e1,d2,e2; cin>>d1>>e1>>d2>>e2;
    pt d = {d1,e1}, e = {d2,e2};
    pt haha = {-1,0};
    ld PI = arg(haha);
    //cout<<setprecision(12)<<PI;
    FOR(i,0,n){
        FOR(j,0,n){
            if (i==j) continue;
            ld a = arg(d-p[i]);
            ld b = arg(e-p[i]);
            ld d = arg(p[j]-p[i]);
            ld A = min(a,b), B = max(a,b);
            if (B-A+eps < PI){
                if (A+eps < d && d+eps < B){
                    cnt[c[i]][c[j]]++;
                }
            }else{
                if (A > d+eps || d > B+eps){
                    cnt[c[i]][c[j]]++;
                }
            }
        }
    }
    //cout<<PI<<"\n";
    int q; cin>>q;
    FOR(i,0,q){
        int f,g; cin>>f>>g;
        cout<<cnt[f][g]<<"\n";
    }
    return 0;
}

Compilation message

abduction2.cpp: In function 'int main()':
abduction2.cpp:24:17: warning: narrowing conversion of 'a' from 'int' to 'long double' [-Wnarrowing]
   24 |         p[i] = {a,b};
      |                 ^
abduction2.cpp:24:19: warning: narrowing conversion of 'b' from 'int' to 'long double' [-Wnarrowing]
   24 |         p[i] = {a,b};
      |                   ^
abduction2.cpp:29:13: warning: narrowing conversion of 'd1' from 'll' {aka 'long long int'} to 'long double' [-Wnarrowing]
   29 |     pt d = {d1,e1}, e = {d2,e2};
      |             ^~
abduction2.cpp:29:16: warning: narrowing conversion of 'e1' from 'll' {aka 'long long int'} to 'long double' [-Wnarrowing]
   29 |     pt d = {d1,e1}, e = {d2,e2};
      |                ^~
abduction2.cpp:29:26: warning: narrowing conversion of 'd2' from 'll' {aka 'long long int'} to 'long double' [-Wnarrowing]
   29 |     pt d = {d1,e1}, e = {d2,e2};
      |                          ^~
abduction2.cpp:29:29: warning: narrowing conversion of 'e2' from 'll' {aka 'long long int'} to 'long double' [-Wnarrowing]
   29 |     pt d = {d1,e1}, e = {d2,e2};
      |                             ^~
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 344 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 344 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 344 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 25 ms 32404 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 344 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -