Submission #1542902
Source Code Expand
#include<iostream> #include<algorithm> #include<cstdio> #include<functional> #include<vector> #include<map> #include<string> #include<set> #include<string.h> #include<unordered_set> #include<unordered_map> #define double long double #define P pair<int,int> #define int long long using namespace std; P S, G; P k[200000]; vector<int>V; int dp[200001]; signed main(){ bool T = false; cin >> S.first >> S.second; cin >> G.first >> G.second; if (abs(S.first - G.first) <= 1) { T = true; swap(S.first, S.second); swap(G.first, G.second); } int n; cin >> n; for (int i = 0; i < n; i++) { cin >> k[i].first >> k[i].second; if (T)swap(k[i].first, k[i].second); } if (S.first > G.first)swap(S, G); sort(k, k + n); double M = 0; if (S.second == G.second) { for (int i = 0; i < n; i++) { if (k[i].second == S.second&&k[i].first >= S.first&&k[i].second <= G.first) { M += 20 * 3.141592653589793238462*0.5 - 20; } } } for (int i = 0; i < n; i++) { if (G.first > k[i].first&&S.first < k[i].first&&max(S.first,G.first) >= k[i].second&&min(S.first, G.first) <= k[i].second) { V.push_back(k[i].second); } } memset(dp, 0x3f, sizeof(dp)); dp[0] = 0; for (int i = 0; i < V.size(); i++) { *lower_bound(dp, dp + n, V[i]) = V[i]; } int i = 0; for (i = V.size(); i >= 0; i--) { if (dp[i] <= 100000000000ll)break; } printf("%.50lf\n", (G.first - S.first + abs(G.second - S.second)) * 100 - (20 - double(20)*3.141592653589793238462*0.25)*i+M); }
Submission Info
Submission Time | |
---|---|
Task | C - Fountain Walk |
User | naoki2016 |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 1535 Byte |
Status | CE |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:12:16: error: expected primary-expression before ‘long’ #define double long double ^ ./Main.cpp:59:82: note: in expansion of macro ‘double’ printf("%.50lf\n", (G.first - S.first + abs(G.second - S.second)) * 100 - (20 - double(20)*3.141592653589793238462*0.25)*i+M); ^ ./Main.cpp:12:16: error: expected ‘)’ before ‘long’ #define double long double ^ ./Main.cpp:59:82: note: in expansion of macro ‘double’ printf("%.50lf\n", (G.first - S.first + abs(G.second - S.second)) * 100 - (20 - double(20)*3.141592653589793238462*0.25)*i+M); ^