제출 #1046239

#제출 시각아이디문제언어결과실행 시간메모리
1046239LucaIliePark (BOI16_park)C++17
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #define BOTTOM_SIDE n #define RIGHT_SIDE n + 1 #define TOP_SIDE n + 2 #define LEFT_SIDE n + 3 #define BOTTOM_LEFT 0 #define BOTTOM_RIGHT 1 #define TOP_RIGHT 2 #define TOP_LEFT 3 using namespace std; struct point { int x, y; }; int dist( point a, point b ) { return sqrt( (long long)(a.x - b.x) * (a.x - b.x) + (long long)(a.y - b.y) * (a.y - b.y) ); } struct circle { point c; int r; }; struct event { int i, j; }; struct query { int e, r; bool ans[4]; }; struct DSU { int n; vector<int> parent; void init( int _n ) { n = _n; parent.resize( n ); for ( int i = 0; i < n; i++ ) parent[i] = i; } int findRoot( int v ) { if ( parent[v] == v ) return v; parent[v] = findRoot( parent[v] ); return parent[v]; } void connect( int u, int v ) { u = findRoot( u ); v = findRoot( v ); parent[u] = v; } bool areConnected( int u, int v ) { return findRoot( u ) == findRoot( v ); } }; const int MAX_N = 2e3; const int MAX_Q = 1e5; circle trees[MAX_N]; query queries[MAX_Q]; map<int, vector<event>> eventsByTime; map<int, vector<int>> queriesByTime; DSU dsu; int main() { int n, q, w, h; cin >> n >> q >> w >> h; for ( int i = 0; i < n; i++ ) cin >> trees[i].c.x >> trees[i].c.y >> trees[i].r; for ( int i = 0; i < q; i++ ) { cin >> queries[i].r >> queries[i].e; queries[i].e--; for ( int e = 0; e < 4; e++ ) queries[i].ans[e] = (e == queries[i].e); queriesByTime[queries[i].r].push_back( i ); } for ( int i = 0; i < n; i++ ) { for ( int j = i + 1; j < n; j++ ) { int d = (dist( trees[i].c, trees[j].c ) - trees[i].r - trees[j].r) / 2; eventsByTime[d].push_back( { i, j } ); } } for ( int i = 0; i < n; i++ ) { eventsByTime[trees[i].c.x - trees[i].r].push_back( { i, LEFT_SIDE } ); eventsByTime[w - (trees[i].c.x + trees[i].r)].push_back( { i, RIGHT_SIDE } ); eventsByTime[trees[i].c.y - trees[i].r].push_back( { i, BOTTOM_SIDE } ); eventsByTime[h - (trees[i].c.y + trees[i].r)].push_back( { i, TOP_SIDE } ); } vector<int> relevantTimes; for ( auto p: eventsByTime ) relevantTimes.push_back( p.first ); for ( auto p: queriesByTime ) relevantTimes.push_back( p.first ); sort( relevantTimes.begin(), relevantTimes.end() ); relevantTimes.resize( unique( relevantTimes.begin(), relevantTimes.end() ) - relevantTimes.begin() ); //dsu.init( n + 4 ); for ( int t: relevantTimes ) { int x= 1; continue; /*for ( int ind: queriesByTime[t] ) { int e = queries[ind].e; continue; bool isClockwisePossible = true; for ( int i = 0; i < 4; i++ ) { int s1 = n + e, s2 = n + i; if ( s1 != s2 ) isClockwisePossible &= (!dsu.areConnected( s1, s2 )); } queries[ind].ans[(e + 1) % 4] = isClockwisePossible; bool isDiagPossible = true; for ( int i = 0; i < 2; i++ ) { for ( int j = 2; j < 4; j++ ) { int s1 = n + (e + i) % 4, s2 = n + (e + j) % 4; if ( s1 != s2 ) isDiagPossible &= (!dsu.areConnected( s1, s2 )); } } queries[ind].ans[(e + 2) % 4] = isDiagPossible; bool isCounterclockwisePossible = true; for ( int i = 0; i < 4; i++ ) { int s1 = n + (e + 3) % 4, s2 = n + i; if ( s1 != s2 ) isCounterclockwisePossible &= (!dsu.areConnected( s1, s2 )); } queries[ind].ans[(e + 3) % 4] = isCounterclockwisePossible;*/ } //for ( event e: eventsByTime[t] ) // dsu.connect( e.i, e.j ); } for ( int i = 0; i < q; i++ ) { for ( int e = 0; e < 4; e++ ) { if ( queries[i].ans[e] ) cout << (e + 1); } cout << "\n"; } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

park.cpp: In function 'int main()':
park.cpp:112:13: warning: unused variable 'x' [-Wunused-variable]
  112 |         int x= 1;
      |             ^
park.cpp:111:15: warning: unused variable 't' [-Wunused-variable]
  111 |     for ( int t: relevantTimes ) {
      |               ^
park.cpp: At global scope:
park.cpp:148:5: error: expected unqualified-id before 'for'
  148 |     for ( int i = 0; i < q; i++ ) {
      |     ^~~
park.cpp:148:22: error: 'i' does not name a type
  148 |     for ( int i = 0; i < q; i++ ) {
      |                      ^
park.cpp:148:29: error: 'i' does not name a type
  148 |     for ( int i = 0; i < q; i++ ) {
      |                             ^
park.cpp:156:5: error: expected unqualified-id before 'return'
  156 |     return 0;
      |     ^~~~~~
park.cpp:157:1: error: expected declaration before '}' token
  157 | }
      | ^