#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 = -1; cin >> n_kari; for(int i=0; i> b_kari[i] >> a_kari[i]; } //ソート combsort(); //本データ作成 n = 0; for(int i=0; i=1; i--){ if(a_kari[i] > a_max){ a_max = a_kari[i]; a[n] = a_kari[i]; b[n] = b_kari[i]; //cout << n << ":" << a[n] << "\t" << b[n] << endl; n ++; } } //targetmax,targetmin計算 for(int i=0; i a[targetmax] || a[i] == a[targetmax] && b[i] > b[targetmax]){ targetmax = i; } if(a[i] < a[targetmin] || a[i] == a[targetmin] && b[i] < b[targetmax]){ targetmin = i; } } //相対位置計算 for(int i=0; i