题目截图如下:


本人第一次写数据结构代码,不知道如何用vector解决问题。目前(超时代码)如下:
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
int* a = new int[n];
int* b = new int[n];
int* x = new int[m];
int* y = new int[m];
for (int i = 0;i < n;i++)
{
cin >> a[i] >> b[i];
}
for (int i = 0;i < m;i++)
{
cin >> x[i] >> y[i];
}
for (int i = 0;i < m;i++)
{
int lo=0, hi=n;
while (1 < hi-lo)
{
int mi = (hi + lo) >> 2;
long long int t;
t = (long long)b[mi] * (long long)x[i] + (long long)a[mi] * (long long)y[i] - (long long)a[mi] * (long long)b[mi];
if (t >= 0)
lo = mi + 1;
else
hi = mi;
}
long long int t;
t = (long long)b[lo] * (long long)x[i] + (long long)a[lo] * (long long)y[i] - (long long)a[lo] * (long long)b[lo];
if (t >= 0)
cout << lo + 1 << endl;
else
cout << lo << endl;
}
delete []a, b, x, y;
return 0;
}