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);
                                                                                  ^