Submission #2551845


Source Code Expand

#include<deque>
#include<queue>
#include<vector>
#include<algorithm>
#include<iostream>
#include<set>
#include<cmath>
#include<tuple>
#include<string>
#include<chrono>
#include<functional>
#include<iterator>
#include<random>
#include<unordered_set>
#include<array>
#include<map>
#include<iomanip>
#include<assert.h>
using namespace std;
typedef long long int llint;
typedef long double lldo;
#define mp make_pair
#define mt make_tuple
#define pub push_back
#define puf push_front
#define pob pop_back
#define pof pop_front
#define fir first
#define sec second
#define res resize
#define ins insert
#define era erase
//cout<<setprecision(20)
//cin.tie(0);
//ios::sync_with_stdio(false);
const llint mod=1000000007;
const llint big=2.19e15+1;
const long double pai=3.141592653589793238462643383279502884197;
const long double eps=1e-15;
template <class T,class U>void mineq(T& a,U b){if(a>b){a=b;}}
template <class T,class U>void maxeq(T& a,U b){if(a<b){a=b;}}
llint gcd(llint a,llint b){if(a%b==0){return b;}else return gcd(b,a%b);}
llint lcm(llint a,llint b){return a/gcd(a,b)*b;}
template<class T> void SO(T& ve){sort(ve.begin(),ve.end());}
template<class T> void REV(T& ve){reverse(ve.begin(),ve.end());}
int LBI(vector<int>&ar,int in){return lower_bound(ar.begin(),ar.end(),in)-ar.begin();}
int UBI(vector<int>&ar,int in){return upper_bound(ar.begin(),ar.end(),in)-ar.begin();}
int main(void){
	cin.tie(0);
	ios::sync_with_stdio(false);
	int n,i;cin>>n;
	vector<pair<llint,llint>>ball(n+2);
	ball[0]=mp(0,0);
	ball[1]=mp(0,0);
	for(i=0;i<n;i++){
		llint t,x;cin>>t>>x;
		ball[i+2]=mp(t,x);
	}
	lldo vmax=mod,vmin=0;
	
	for(int kai=0;kai<60;kai++){
		lldo vgen=(vmax+vmin)/2;
		lldo otL=0,otR=0;
		bool can=true;
		for(i=2;i<n+2;i++){
			bool recan=(vgen*(ball[i].fir-ball[i-1].fir)>=abs(ball[i].sec-ball[i-1].sec));
			bool otcan=(otL<=ball[i].sec+ball[i].fir*vgen)&&(ball[i].sec-ball[i].fir*vgen<=otR);
			if(recan&&otcan){
				mineq(otL,ball[i-1].sec+ball[i-1].fir*vgen);
				maxeq(otR,ball[i-1].sec-ball[i-1].fir*vgen);
			}else if(recan){}
			else if(otcan){
				otL=ball[i-1].sec+ball[i-1].fir*vgen;
				otR=ball[i-1].sec-ball[i-1].fir*vgen;
			}else{can=false;break;}
		}
		if(can){vmax=vgen;}else{vmin=vgen;}
	}
	cout<<setprecision(20)<<vmax<<endl;
	return 0;
}

Submission Info

Submission Time
Task F - ダブルス
User WA_TLE
Language C++14 (GCC 5.4.1)
Score 800
Code Size 2351 Byte
Status AC
Exec Time 68 ms
Memory 1792 KB

Judge Result

Set Name Sample Small All
Score / Max Score 0 / 0 600 / 600 200 / 200
Status
AC × 5
AC × 69
AC × 132
Set Name Test Cases
Sample 00_sample_00, 00_sample_01, 00_sample_02, 00_sample_03, 00_sample_04
Small 00_sample_00, 00_sample_01, 00_sample_02, 00_sample_03, 00_sample_04, 01_random_00, 01_random_01, 01_random_02, 01_random_03, 01_random_04, 01_random_05, 01_random_06, 01_random_07, 01_random_08, 01_random_09, 02_X_positive_00, 02_X_positive_01, 02_X_positive_02, 02_X_positive_03, 02_X_positive_04, 03_X_negative_00, 03_X_negative_01, 03_X_negative_02, 03_X_negative_03, 03_X_negative_04, 04_T_large_00, 04_T_large_01, 04_T_large_02, 04_T_large_03, 04_T_large_04, 04_T_small_00, 04_T_small_01, 04_T_small_02, 04_T_small_03, 04_T_small_04, 05_X_negative_large_00, 05_X_negative_large_01, 05_X_negative_large_02, 05_X_negative_large_03, 05_X_negative_large_04, 05_X_positive_large_00, 05_X_positive_large_01, 05_X_positive_large_02, 05_X_positive_large_03, 05_X_positive_large_04, 05_absX_large_00, 05_absX_large_01, 05_absX_large_02, 05_absX_large_03, 05_absX_large_04, 05_absX_small_00, 05_absX_small_01, 05_absX_small_02, 05_absX_small_03, 05_absX_small_04, 08_V_minimum_nonzero_00, 09_max_00, 09_max_01, 09_max_02, 09_max_03, 09_max_04, 09_max_05, 09_max_06, 09_max_07, 09_max_08, 09_max_09, 09_max_10, 09_max_11, 09_max_12
All 00_sample_00, 00_sample_01, 00_sample_02, 00_sample_03, 00_sample_04, 01_random_00, 01_random_01, 01_random_02, 01_random_03, 01_random_04, 01_random_05, 01_random_06, 01_random_07, 01_random_08, 01_random_09, 02_X_positive_00, 02_X_positive_01, 02_X_positive_02, 02_X_positive_03, 02_X_positive_04, 03_X_negative_00, 03_X_negative_01, 03_X_negative_02, 03_X_negative_03, 03_X_negative_04, 04_T_large_00, 04_T_large_01, 04_T_large_02, 04_T_large_03, 04_T_large_04, 04_T_small_00, 04_T_small_01, 04_T_small_02, 04_T_small_03, 04_T_small_04, 05_X_negative_large_00, 05_X_negative_large_01, 05_X_negative_large_02, 05_X_negative_large_03, 05_X_negative_large_04, 05_X_positive_large_00, 05_X_positive_large_01, 05_X_positive_large_02, 05_X_positive_large_03, 05_X_positive_large_04, 05_absX_large_00, 05_absX_large_01, 05_absX_large_02, 05_absX_large_03, 05_absX_large_04, 05_absX_small_00, 05_absX_small_01, 05_absX_small_02, 05_absX_small_03, 05_absX_small_04, 08_V_minimum_nonzero_00, 09_max_00, 09_max_01, 09_max_02, 09_max_03, 09_max_04, 09_max_05, 09_max_06, 09_max_07, 09_max_08, 09_max_09, 09_max_10, 09_max_11, 09_max_12, 11_random_00, 11_random_01, 11_random_02, 11_random_03, 11_random_04, 11_random_05, 11_random_06, 11_random_07, 11_random_08, 11_random_09, 12_X_positive_00, 12_X_positive_01, 12_X_positive_02, 12_X_positive_03, 12_X_positive_04, 13_X_negative_00, 13_X_negative_01, 13_X_negative_02, 13_X_negative_03, 13_X_negative_04, 14_T_large_00, 14_T_large_01, 14_T_large_02, 14_T_large_03, 14_T_large_04, 14_T_small_00, 14_T_small_01, 14_T_small_02, 14_T_small_03, 14_T_small_04, 15_X_negative_large_00, 15_X_negative_large_01, 15_X_negative_large_02, 15_X_negative_large_03, 15_X_negative_large_04, 15_X_positive_large_00, 15_X_positive_large_01, 15_X_positive_large_02, 15_X_positive_large_03, 15_X_positive_large_04, 15_absX_large_00, 15_absX_large_01, 15_absX_large_02, 15_absX_large_03, 15_absX_large_04, 15_absX_small_00, 15_absX_small_01, 15_absX_small_02, 15_absX_small_03, 15_absX_small_04, 19_max_00, 19_max_01, 19_max_02, 19_max_03, 19_max_04, 19_max_05, 19_max_06, 19_max_07, 19_max_08, 19_max_09, 19_max_10, 19_max_11, 19_max_12
Case Name Status Exec Time Memory
00_sample_00 AC 1 ms 256 KB
00_sample_01 AC 1 ms 256 KB
00_sample_02 AC 1 ms 256 KB
00_sample_03 AC 1 ms 256 KB
00_sample_04 AC 1 ms 256 KB
01_random_00 AC 2 ms 256 KB
01_random_01 AC 2 ms 256 KB
01_random_02 AC 2 ms 256 KB
01_random_03 AC 1 ms 256 KB
01_random_04 AC 1 ms 256 KB
01_random_05 AC 1 ms 256 KB
01_random_06 AC 2 ms 256 KB
01_random_07 AC 1 ms 256 KB
01_random_08 AC 2 ms 256 KB
01_random_09 AC 2 ms 256 KB
02_X_positive_00 AC 2 ms 256 KB
02_X_positive_01 AC 2 ms 256 KB
02_X_positive_02 AC 2 ms 256 KB
02_X_positive_03 AC 2 ms 256 KB
02_X_positive_04 AC 2 ms 256 KB
03_X_negative_00 AC 1 ms 256 KB
03_X_negative_01 AC 2 ms 256 KB
03_X_negative_02 AC 3 ms 256 KB
03_X_negative_03 AC 2 ms 256 KB
03_X_negative_04 AC 2 ms 256 KB
04_T_large_00 AC 2 ms 256 KB
04_T_large_01 AC 2 ms 256 KB
04_T_large_02 AC 2 ms 256 KB
04_T_large_03 AC 2 ms 256 KB
04_T_large_04 AC 2 ms 256 KB
04_T_small_00 AC 1 ms 256 KB
04_T_small_01 AC 2 ms 256 KB
04_T_small_02 AC 1 ms 256 KB
04_T_small_03 AC 1 ms 256 KB
04_T_small_04 AC 2 ms 256 KB
05_X_negative_large_00 AC 2 ms 256 KB
05_X_negative_large_01 AC 2 ms 256 KB
05_X_negative_large_02 AC 2 ms 256 KB
05_X_negative_large_03 AC 2 ms 256 KB
05_X_negative_large_04 AC 1 ms 256 KB
05_X_positive_large_00 AC 2 ms 256 KB
05_X_positive_large_01 AC 2 ms 256 KB
05_X_positive_large_02 AC 2 ms 256 KB
05_X_positive_large_03 AC 1 ms 256 KB
05_X_positive_large_04 AC 2 ms 256 KB
05_absX_large_00 AC 2 ms 256 KB
05_absX_large_01 AC 2 ms 256 KB
05_absX_large_02 AC 2 ms 256 KB
05_absX_large_03 AC 1 ms 256 KB
05_absX_large_04 AC 2 ms 256 KB
05_absX_small_00 AC 1 ms 256 KB
05_absX_small_01 AC 2 ms 256 KB
05_absX_small_02 AC 2 ms 256 KB
05_absX_small_03 AC 1 ms 256 KB
05_absX_small_04 AC 2 ms 256 KB
08_V_minimum_nonzero_00 AC 1 ms 256 KB
09_max_00 AC 2 ms 256 KB
09_max_01 AC 2 ms 256 KB
09_max_02 AC 2 ms 256 KB
09_max_03 AC 2 ms 256 KB
09_max_04 AC 3 ms 256 KB
09_max_05 AC 2 ms 256 KB
09_max_06 AC 2 ms 256 KB
09_max_07 AC 2 ms 256 KB
09_max_08 AC 2 ms 256 KB
09_max_09 AC 2 ms 256 KB
09_max_10 AC 2 ms 256 KB
09_max_11 AC 2 ms 256 KB
09_max_12 AC 2 ms 256 KB
11_random_00 AC 20 ms 768 KB
11_random_01 AC 55 ms 1664 KB
11_random_02 AC 36 ms 1024 KB
11_random_03 AC 29 ms 1024 KB
11_random_04 AC 62 ms 1792 KB
11_random_05 AC 33 ms 1152 KB
11_random_06 AC 16 ms 768 KB
11_random_07 AC 54 ms 1664 KB
11_random_08 AC 36 ms 1152 KB
11_random_09 AC 48 ms 1664 KB
12_X_positive_00 AC 31 ms 1024 KB
12_X_positive_01 AC 38 ms 1408 KB
12_X_positive_02 AC 46 ms 1408 KB
12_X_positive_03 AC 19 ms 768 KB
12_X_positive_04 AC 55 ms 1792 KB
13_X_negative_00 AC 34 ms 1024 KB
13_X_negative_01 AC 22 ms 768 KB
13_X_negative_02 AC 28 ms 1152 KB
13_X_negative_03 AC 15 ms 640 KB
13_X_negative_04 AC 40 ms 1280 KB
14_T_large_00 AC 39 ms 1408 KB
14_T_large_01 AC 43 ms 1280 KB
14_T_large_02 AC 35 ms 1024 KB
14_T_large_03 AC 60 ms 1664 KB
14_T_large_04 AC 39 ms 1152 KB
14_T_small_00 AC 9 ms 512 KB
14_T_small_01 AC 50 ms 1664 KB
14_T_small_02 AC 62 ms 1664 KB
14_T_small_03 AC 44 ms 1408 KB
14_T_small_04 AC 57 ms 1536 KB
15_X_negative_large_00 AC 15 ms 640 KB
15_X_negative_large_01 AC 50 ms 1408 KB
15_X_negative_large_02 AC 18 ms 640 KB
15_X_negative_large_03 AC 19 ms 768 KB
15_X_negative_large_04 AC 45 ms 1664 KB
15_X_positive_large_00 AC 19 ms 768 KB
15_X_positive_large_01 AC 48 ms 1792 KB
15_X_positive_large_02 AC 10 ms 512 KB
15_X_positive_large_03 AC 34 ms 1280 KB
15_X_positive_large_04 AC 38 ms 1408 KB
15_absX_large_00 AC 8 ms 384 KB
15_absX_large_01 AC 38 ms 1408 KB
15_absX_large_02 AC 56 ms 1792 KB
15_absX_large_03 AC 26 ms 1024 KB
15_absX_large_04 AC 9 ms 512 KB
15_absX_small_00 AC 6 ms 384 KB
15_absX_small_01 AC 11 ms 512 KB
15_absX_small_02 AC 53 ms 1664 KB
15_absX_small_03 AC 26 ms 1024 KB
15_absX_small_04 AC 5 ms 384 KB
19_max_00 AC 60 ms 1792 KB
19_max_01 AC 53 ms 1792 KB
19_max_02 AC 63 ms 1792 KB
19_max_03 AC 58 ms 1792 KB
19_max_04 AC 68 ms 1792 KB
19_max_05 AC 66 ms 1792 KB
19_max_06 AC 50 ms 1792 KB
19_max_07 AC 56 ms 1792 KB
19_max_08 AC 48 ms 1792 KB
19_max_09 AC 45 ms 1792 KB
19_max_10 AC 57 ms 1792 KB
19_max_11 AC 53 ms 1792 KB
19_max_12 AC 61 ms 1792 KB