#include #include #include #include #include #include #include using namespace std; int n_kari; long b_kari[1000]; long a_kari[1000]; //デフォルト昇順 void combsort(){ bool flg; int h; h = n_kari / 1.3; while(true){ flg = true; for(int i=0; i+h b_kari[i+h]){ //ソート基準変更位置 //swap swap(a_kari[i], a_kari[i+h]); swap(b_kari[i], b_kari[i+h]); flg = false; } } if(h == 1){ if(flg){ break; } }else{ h /= 1.3; } } } int main(){ int n; //y=ax+b long b[1000]; //スペース long a[1000]; //タブ long y[1000]; //相対位置 long x; long ansx,ansy; int maxno,minno; int targetmax = 0; //該当の最初の位置 int targetmin = 0; //該当の最初の位置 long temp; long a_min = LONG_MAX; long a_max = 0; bool flg; cin >> n_kari; for(int i=0; i> b_kari[i] >> a_kari[i]; } //ソート combsort(); //本データ作成 a[0] = a_kari[0]; b[0] = b_kari[0]; a[1] = a_kari[n_kari-1]; b[1] = b_kari[n_kari-1]; n = 2; for(int i=1; i a_max){ a_max = a_kari[i]; flg = true; } if(a_kari[i] < a_min){ a_max = a_kari[i]; flg = true; } if(flg){ a[n] = a_kari[i]; b[n] = b_kari[i]; n ++; } } //targetmax,targetmin計算 for(int i=0; i a_kari[targetmax] || a_kari[i] == a_kari[targetmax] && b_kari[i] > b_kari[targetmax]){ targetmax = i; } if(a_kari[i] < a_kari[targetmin] || a_kari[i] == a_kari[targetmin] && b_kari[i] < b_kari[targetmax]){ targetmin = i; } } //相対位置計算 for(int i=0; i