Submission #776583

#TimeUsernameProblemLanguageResultExecution timeMemory
776583myrcellaDragon 2 (JOI17_dragon2)C++17
15 / 100
1616 ms51260 KiB
#include <bits/stdc++.h> using namespace std; typedef long long LL; typedef long double DD; #define int LL #define pii pair<int,int> #define F first #define pq priority_queue #define S second #define inf 0x3f #define pb push_back #define SZ(x) ((int)((x).size())) #define ALL(x) x.begin(), x.end() #define rep(i,a,b) for (int i = (a); i < (b); i++) #define MOD 1000000007 #define debug(x) cerr << #x << "=" << x << endl const int maxn = 3333; int n, _; int ans[maxn][maxn]; pii coor[maxn]; int typ[maxn]; pii x, y; DD calc(pii a, pii b, pii c) { /* DD tmp = (b.F - a.F) * (b.F - a.F) + (b.S - a.S) * (b.S - a.S); tmp += (c.F - a.F) * (c.F - a.F) + (c.S - a.S) * (c.S - a.S); tmp -= (b.F - c.F) * (b.F - c.F) + (b.S - c.S) * (b.S - c.S); tmp /= (DD(2) * sqrt((b.F - a.F) * (b.F - a.F) + (b.S - a.S) * (b.S - a.S)) * sqrt((c.F - a.F) * (c.F - a.F) + (c.S - a.S) * (c.S - a.S))); return tmp; */ DD tmp = (b.F - a.F) * (c.F - a.F) + (b.S - a.S) * (c.S - a.S); debug(tmp); tmp /= sqrt((b.F - a.F) * (b.F - a.F) + (b.S - a.S) * (b.S - a.S)); debug(tmp); tmp /= sqrt((c.F - a.F) * (c.F - a.F) + (c.S - a.S) * (c.S - a.S)); return tmp; } signed main() { cin >> n >> _; rep(i, 0, n) { cin >> coor[i].F >> coor[i].S; cin >> typ[i]; } cin >> x.F >> x.S >> y.F >> y.S; if (x.F > y.F) swap(x.F, y.F), swap(x.S, y.S); rep(i, 0, n) rep(j, 0, n) { if (typ[i] == typ[j]) continue; DD k1 = DD(coor[j].S - coor[i].S) / DD(coor[j].F - coor[i].F); DD b1 = DD(coor[j].S) - DD(coor[j].F) * k1; DD k2 = DD(x.S - y.S) / DD(x.F - y.F); DD b2 = DD(x.S) - DD(x.F) * k2; DD xx = DD(b2 - b1) / DD(k1 - k2); if (xx < x.F or xx > y.F) continue; if ((xx - coor[i].F) * DD(coor[i].F - coor[j].F) > 0) continue; //debug(i), debug(j); ans[typ[i]][typ[j]]++; } cin >> _; while (_--) { int a, b; cin >> a >> b; cout << ans[a][b] << "\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...